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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование динамических форм  (Прочитано 4868 раз)
vitalka
Гость
« : Ноябрь 28, 2011, 06:31 »

Создаю динамически много окон(QWidget) с различным содержанием. Появился вопрос, как информацию об этих окнах лучше хранить, что бы иметь доступ ко всем элементам?
Хранить ли ссылки на все элементы окна или достаточно только ссылки на само окно?
Как в этом случае получить по имени например, элементы содержащиеся в окне?
Пробовал хранить layout, и через него по местоположению получать адреса элементов, но это не очень удобно, в случае если нужно поменять интерфейс например.
Записан
Bepec
Гость
« Ответ #1 : Ноябрь 28, 2011, 06:56 »

Храни указатели. Вот тебе и весь сказ.
Записан
vitalka
Гость
« Ответ #2 : Ноябрь 28, 2011, 07:19 »

Храни указатели. Вот тебе и весь сказ.
До этого я и сам додумался, но тут получается, допустим я хочу создать новый тип окна (с другими элементами), я должен буду тогда менять структуру данных, в которой указатели хранятся.
Но ведь когда я на QWidget помещаю элементы, они же поидее уже хранятся где то, следовательно я их могу оттуда достать...
Записан
Bepec
Гость
« Ответ #3 : Ноябрь 28, 2011, 07:48 »

Незнаю твоих структур для чего они и можно ли их систематизировать. Так что скажу следующее:
По указателю на QWidget, ты можешь обратиться к любому виджету, находящемуся на нем.
Я бы систематизировал твои динамические формы и сделал бы 2-3 специализированных класса с функциями доступа Улыбающийся
Записан
vitalka
Гость
« Ответ #4 : Ноябрь 28, 2011, 07:53 »

Незнаю твоих структур для чего они и можно ли их систематизировать. Так что скажу следующее:
По указателю на QWidget, ты можешь обратиться к любому виджету, находящемуся на нем.
Я бы систематизировал твои динамические формы и сделал бы 2-3 специализированных класса с функциями доступа Улыбающийся
Вот как раз вопрос с том как найти нужный элемент на QWidget?
Могу ли, например внутреннему QWidget назначить имя, и потом при необходимости по этому имени получить на него указатель?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Ноябрь 28, 2011, 08:49 »

динамически грузить - QFormBuilder/QUILoader, найти объект по имени - QObject::findChild[ren]()
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
vitalka
Гость
« Ответ #6 : Ноябрь 28, 2011, 10:20 »

динамически грузить - QFormBuilder/QUILoader, найти объект по имени - QObject::findChild[ren]()
Вот спасибо, то что надо.
Не понял причем здесь QFormBuilder/QUILoader....у меня формы динамически формируются.
Но я использовал setObjectName и findChild функции QObject, не знаю как раньше в голову не пришло, что это все через QObject делается. Проверил, все отлично работает.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Ноябрь 28, 2011, 10:33 »

Не понял причем здесь QFormBuilder/QUILoader....у меня формы динамически формируются.
я думал они формируются динамически на основании каких-то предопределенных форм, которые хранятся в ui-файлах
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #8 : Ноябрь 28, 2011, 10:35 »

ТС не настолько специалист Улыбающийся
Да и я его же категориями мыслю Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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