Russian Qt Forum
Ноябрь 06, 2024, 14:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Внешний вид формы по сценарию.  (Прочитано 5086 раз)
niXman
Гость
« : Декабрь 05, 2009, 09:05 »

Всем привет.
В продолжение мною же созданной темы: http://www.prog.org.ru/topic_11540_0.html
От этого способа отказался. Т.к. существующие ГУИ сложно изменять тем способом.

Вот, посетила новая мысля. Зацените Подмигивающий

В конструкторе формы, после создания ГУИ контролов, вставляем одну единственную функцию, к примеру "modifyGui()". Которая, в свою очередь, выполняет следующее:
1. Получает список чаилдов.
2. Определяет, является ли этот объект ГУИ объектом?
3. Если ДА -
3.1. Получает его имя.
3.2. Смотрит, есть ли(в своей БД) для объекта с этим именем, новые параметры.
3.3. Если есть - Применяет.

отсюда возникли вопросы:
1. Как получить список чаилдов? (const QObjectList & QObject::children() -  ?)
2. Как определить, является ли объект ГУИшным?
3. Чего я не учел?

Всем спасибо за внимание.
Записан
BRE
Гость
« Ответ #1 : Декабрь 05, 2009, 09:42 »

отсюда возникли вопросы:
1. Как получить список чаилдов? (const QObjectList & QObject::children() -  ?)
2. Как определить, является ли объект ГУИшным?
3. Чего я не учел?
Код
C++ (Qt)
QList<QWidget *> all = parentWidget.findChildren<QWidget *>();

Записан
niXman
Гость
« Ответ #2 : Декабрь 05, 2009, 09:44 »

Это ответ на какой вопрос?
Записан
niXman
Гость
« Ответ #3 : Декабрь 05, 2009, 09:45 »

Ааа... Т.е. вернет только список виджетов?
А виджеты все визуальные?(наверное тупой вопрос. но мало ли...)
Записан
BRE
Гость
« Ответ #4 : Декабрь 05, 2009, 09:52 »

Ааа... Т.е. вернет только список виджетов?
А виджеты все визуальные?(наверное тупой вопрос. но мало ли...)
Да.
+ можно еще указывать имена для объектов и искать по ним:
Код
C++ (Qt)
QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname");
Записан
niXman
Гость
« Ответ #5 : Декабрь 05, 2009, 09:54 »

Ух ты!
Половина проблемы решена.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Декабрь 05, 2009, 09:58 »

ещё есть QObject::isWidget(), работающий значительно быстрее других способов определения наследования от QWidget. Так написано в описании к методу.
Записан

Юра.
niXman
Гость
« Ответ #7 : Декабрь 05, 2009, 10:04 »

Да, быстрее.
Но называется он: bool QObject::isWidgetType () const
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.191 секунд. Запросов: 23.