Как добавить отдельный UI(QFrame) во время работы программы? |
Здравствуйте, гость ( Вход | Регистрация )
Как добавить отдельный UI(QFrame) во время работы программы? |
RazrFalcon |
26.7.2011, 19:16
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Есть комбобокс, он имеет 4-е значения. В зависимости от того какое значение выбрал пользователь, должен грузится соответствующий QFrame с необходимыми элементами. Все QFrame в отдельных *.ui файлах. И я должен иметь возможность работать с этими элементами.
Как это реализовать? |
|
|
ilyabvt |
26.7.2011, 23:31
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
Если я правильно понял суть проблемы то вам нужен класс QUiLoader
http://doc.qt.nokia.com/latest/quiloader.html |
|
|
RazrFalcon |
27.7.2011, 0:01
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Спасибо!
Не знаю на сколько это труЪ, но пашет именно так как мне надо. |
|
|
RazrFalcon |
27.7.2011, 9:20
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Ну грузится он грузится, а вот как получить доступ к элементам формы я не пойму =/
PS: в чем разница между: QUiLoader и QFormBuilder? Вроде одно и тоже. |
|
|
ilyabvt |
27.7.2011, 11:16
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
Для доступа к виджетам можно использовать findChild
Раскрывающийся текст Взято из книги "Qt 4.5. Профессиональное программирование на c++" Макс Шлее Цитата в чем разница между: QUiLoader и QFormBuilder? Цитата The QFormBuilder class is typically used by custom components and applications that embed Qt Designer. Standalone applications that need to dynamically generate user interfaces at run-time use the QUiLoader class, found in the QtUiTools module. Я так понял, если тащишь за собой Qt Designer, то лучше QFormBuilder если нет то лучше QUiLoader. |
|
|
Litkevich Yuriy |
28.7.2011, 13:53
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
vankleef |
28.7.2011, 23:31
Сообщение
#7
|
Студент Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: 1 |
я вот не понимаю а почему нельзя отследить сигнал комбобокса и показать/создать/удалить форму, которую надо ?
|
|
|
RazrFalcon |
29.7.2011, 0:50
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Litkevich Yuriy, нашел - пашет.
vankleef, не понял о чем Вы. Проблема сейчас другая. Если я создал Qt Designer Form Class, могу ли я в нем прописать нужные мне действия. Я то гружу только сам UI. То есть, я хочу что бы часть команд (нажатий на некоторые элементы), отрабатывалась в классе виджета. То есть как будто обычное окно, нормальная реакция на сигналы и тд. Но сам виджет не отдельным окном, а внутри другого. Возможно ли это? Или мне нужно через findChild найти все объекты виджета, и уже в основном классе программ обрабатывать их сигналы? PS: Если уж совсем не ясно объяснил, могу выложить мини пример. |
|
|
Litkevich Yuriy |
29.7.2011, 5:44
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Часть работы можно сделать в самом дизайнере (т.е. соединить в нём сигналы и слоты), а то что должно взаимодействовать с внешним миром и просто некая логика внутри виджета, придётся делать в коде и за пределами динамически создаваемого (из ui-файла) виджета.
|
|
|
RazrFalcon |
29.7.2011, 9:49
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
То есть сам код слотов должен быть в основном коде, который и грузит форму?
PS: то что я пытаюсь сделать, вроде бы, называется "мастер". То есть у меня есть пустое окно с кнопками далее/назад. А все остальные элементы грузятся из внешних форм (*.ui). Возможно есть вариант лучше, чем я делаю сейчас. Сообщение отредактировал RazrFalcon - 29.7.2011, 10:16 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 11:57 |