![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Есть комбобокс, он имеет 4-е значения. В зависимости от того какое значение выбрал пользователь, должен грузится соответствующий QFrame с необходимыми элементами. Все QFrame в отдельных *.ui файлах. И я должен иметь возможность работать с этими элементами.
Как это реализовать? |
|
|
ilyabvt |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: ![]() ![]() ![]() |
Если я правильно понял суть проблемы то вам нужен класс QUiLoader
http://doc.qt.nokia.com/latest/quiloader.html |
|
|
RazrFalcon |
![]()
Сообщение
#3
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо!
Не знаю на сколько это труЪ, но пашет именно так как мне надо. |
|
|
RazrFalcon |
![]()
Сообщение
#4
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Ну грузится он грузится, а вот как получить доступ к элементам формы я не пойму =/
PS: в чем разница между: QUiLoader и QFormBuilder? Вроде одно и тоже. |
|
|
ilyabvt |
![]()
Сообщение
#5
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: ![]() ![]() ![]() |
Для доступа к виджетам можно использовать 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 |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
vankleef |
![]()
Сообщение
#7
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
я вот не понимаю а почему нельзя отследить сигнал комбобокса и показать/создать/удалить форму, которую надо ?
|
|
|
RazrFalcon |
![]()
Сообщение
#8
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, нашел - пашет.
vankleef, не понял о чем Вы. Проблема сейчас другая. Если я создал Qt Designer Form Class, могу ли я в нем прописать нужные мне действия. Я то гружу только сам UI. То есть, я хочу что бы часть команд (нажатий на некоторые элементы), отрабатывалась в классе виджета. То есть как будто обычное окно, нормальная реакция на сигналы и тд. Но сам виджет не отдельным окном, а внутри другого. Возможно ли это? Или мне нужно через findChild найти все объекты виджета, и уже в основном классе программ обрабатывать их сигналы? PS: Если уж совсем не ясно объяснил, могу выложить мини пример. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Часть работы можно сделать в самом дизайнере (т.е. соединить в нём сигналы и слоты), а то что должно взаимодействовать с внешним миром и просто некая логика внутри виджета, придётся делать в коде и за пределами динамически создаваемого (из ui-файла) виджета.
|
|
|
RazrFalcon |
![]()
Сообщение
#10
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
То есть сам код слотов должен быть в основном коде, который и грузит форму?
PS: то что я пытаюсь сделать, вроде бы, называется "мастер". То есть у меня есть пустое окно с кнопками далее/назад. А все остальные элементы грузятся из внешних форм (*.ui). Возможно есть вариант лучше, чем я делаю сейчас. Сообщение отредактировал RazrFalcon - 29.7.2011, 10:16 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.6.2025, 21:50 |