crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> масштабирование формы и элементов на ней
trin
  опции профиля:
сообщение 24.6.2010, 15:20
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 24.6.2010
Пользователь №: 1835

Спасибо сказали: 0 раз(а)




Репутация:   0  


Требуется написать функцию, которая перебирала бы все компоненты на форме с дальнейшим сохранением в файл их геометрических параметров.

Для начала как докопаться до индекса элементов? ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 24.6.2010, 15:30
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


а может все-таки QSettings ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.6.2010, 17:06
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 24.6.2010, 19:30) *
Для начала как докопаться до индекса элементов?
QObject::findChildren<QWidget *>()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trin
  опции профиля:
сообщение 25.6.2010, 8:52
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 24.6.2010
Пользователь №: 1835

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(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
  опции профиля:
сообщение 28.6.2010, 9:28
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 24.6.2010
Пользователь №: 1835

Спасибо сказали: 0 раз(а)




Репутация:   0  


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
  опции профиля:
сообщение 28.6.2010, 10:58
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(trin @ 28.6.2010, 13:28) *
Геометрических например?
а у Qobject откуда геометрия?
Смотри QWidget, там много геометрических свойств. Смотри статью Геометрия окна
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trin
  опции профиля:
сообщение 28.6.2010, 18:14
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 24.6.2010
Пользователь №: 1835

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(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
  опции профиля:
сообщение 28.6.2010, 18:36
Сообщение #8


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(trin @ 28.6.2010, 21:14) *
основная проблема в том чтобы вместо this был объект откуда её вызвали

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

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


Сообщение отредактировал Алексей1153 - 28.6.2010, 18:37
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trin
  опции профиля:
сообщение 29.6.2010, 14:26
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 24.6.2010
Пользователь №: 1835

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 28.6.2010, 19:36) *
Цитата(trin @ 28.6.2010, 21:14) *
основная проблема в том чтобы вместо this был объект откуда её вызвали

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

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



не такая уж и большая проблема, ок, спасиб :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 6:40