Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: масштабирование формы и элементов на ней
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
trin
Требуется написать функцию, которая перебирала бы все компоненты на форме с дальнейшим сохранением в файл их геометрических параметров.

Для начала как докопаться до индекса элементов? ;)
Andrewshkovskii
а может все-таки QSettings ?
Litkevich Yuriy
Цитата(Andrewshkovskii @ 24.6.2010, 19:30) *
Для начала как докопаться до индекса элементов?
QObject::findChildren<QWidget *>()
trin
Цитата(Andrewshkovskii @ 24.6.2010, 16:30) *
а может все-таки QSettings ?


вообще так и планировалось

Цитата(Litkevich Yuriy @ 24.6.2010, 18:06) *
Цитата(Andrewshkovskii @ 24.6.2010, 19:30) *
Для начала как докопаться до индекса элементов?
QObject::findChildren<QWidget *>()


thx, сейчас буду пробовать
trin
QObjectList olist;
olist=this->children();
for (int i=0;i<olist.size();i++)
{
  QObject  *currobj;
currobj=olist.at(i);
ui->listWidget->addItem(currobj->objectName()); //имя объекта
ui->listWidget_2->addItem(currobj->metaObject()->className()); //класс объекта
}



а как добраться до свойст объекта? Геометрических например? Если не сложно с примером кода :blush:
Litkevich Yuriy
Цитата(trin @ 28.6.2010, 13:28) *
Геометрических например?
а у Qobject откуда геометрия?
Смотри QWidget, там много геометрических свойств. Смотри статью Геометрия окна
trin
Цитата(Litkevich Yuriy @ 28.6.2010, 11:58) *
а у Qobject откуда геометрия?


а если вот так?

    QSettings settings("Soft", "Config");
    QObjectList olist;
    olist=this->children();
    for (int i=0;i<olist.size();i++)
    {
     QObject *currobj;
     currobj=olist.at(i);
          
   settings.beginGroup("/"+currobj->parent()->objectName());
   settings.beginGroup("/"+currobj->objectName());
   settings.setValue("/x",currobj->property("x"));
   settings.setValue("/y",currobj->property("y"));
   settings.setValue("/width",currobj->property("width"));
   settings.setValue("/height",currobj->property("height"));
   settings.endGroup();
   settings.endGroup();
    }


теперь на примере этого кода нужно как-то реализовать функцию, основная проблема в том чтобы вместо this был объект откуда её вызвали....
Алексей1153
Цитата(trin @ 28.6.2010, 21:14) *
основная проблема в том чтобы вместо this был объект откуда её вызвали

От, ведь, какая сложная проблема :)

Делаешь функцию статической (во избежание случайного использования *this), а в качестве параметра передаёшь
QКакойТоТамТип* pThis
trin
Цитата(Алексей1153 @ 28.6.2010, 19:36) *
Цитата(trin @ 28.6.2010, 21:14) *
основная проблема в том чтобы вместо this был объект откуда её вызвали

От, ведь, какая сложная проблема :)

Делаешь функцию статической (во избежание случайного использования *this), а в качестве параметра передаёшь
QКакойТоТамТип* pThis



не такая уж и большая проблема, ок, спасиб :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.