![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
bobdva |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Загрузить форму в runtime из ui-файла можно при помощи QUiLoader.
Есть два ui-файла, в одном описан один компонент, в другом компонент, в котором требуется использовать widget, описанный в первом файле. Как это можно описать в соответствии c форматом ui-файла, и как это можно загрузить в runtime (без предкомпиляции ui в h/cpp) |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Если я правильно понял по поводу QUiLoader в ассистенте, то это делается по аналогии с AnalogClock:
|
|
|
bobdva |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Если я правильно понял по поводу QUiLoader в ассистенте, то это делается по аналогии с AnalogClock:
в том-то и проблема, что требуемый widget не находится в availableWidgets ![]() |
|
|
ViGOur |
![]()
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Тогда нужны подробности, почему и прочее...
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
bobdva, рекомендую сделать наипростейший проект и выложить его
P.S. Пожалуйста не цитируй сообщения целиком если они большие, выдели интерисующий текст и нажми "++ЦИТАТА" |
|
|
bobdva |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Тогда нужны подробности, почему и прочее... хочется иметь возможность изменять формы без необходимости перекомпиляции и при этом использовать компоненты несколько раз. т.е. есть, например, simpleForm.ui - простая форма, которая должна быть использована как в simpleDialog1.ui, так и в simpleDialog2.ui, которые отличаются ещё между собой чем-то, но содержат одну и ту же simpleForm. надеюсь понятно объяснил |
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
читай мой пост
|
|
|
bobdva |
![]()
Сообщение
#8
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
bobdva, рекомендую сделать наипростейший проект и выложить его простейший проект, где из main.cpp грузится simpleForm.ui сделал - ибо всё просто, но как сделать именно с включением одного в ui внутрь другого, и уже его динамечески загрузить в runtime - не могу даже подступиться. |
|
|
ViGOur |
![]()
Сообщение
#9
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
А не проще ли без ui файлов обойтись?
Все можно создавать и на лету, без ui файлов, описав лишь нужные действия в классах и не более того. ![]() |
|
|
bobdva |
![]()
Сообщение
#10
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А не проще ли без ui файлов обойтись? требования, что описание должно быть внешним, которое можно как-то быстро менять (qt designer, например), а делать свой велосипед по загрузке этого внешнего описания не хотелось. требования, что описание должно быть внешним, которое можно как-то быстро менять (qt designer, например), а делать свой велосипед по загрузке этого внешнего описания не хотелось. описание графических диалогов/форм/компонент |
|
|
ViGOur |
![]()
Сообщение
#11
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Посмотри пример: Calculator Builder Example.
Кажется то, что тебе нужно... |
|
|
bobdva |
![]()
Сообщение
#12
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
ViGOur |
![]()
Сообщение
#13
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
загрузить ui, в который загружается ещё один ui и это всё в runtime Извини, до этого не до конца понял, спать уже пора ложиться. ![]() Если я правильно понял тебя сайчас, то тебе нужно загрузить сразу два ui, как в примере. И при загрузке второго ui в качестве родителя указать виджет из первого ui. Если и сейчас я не правильно понял, то пойду спать... ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
bobdva, выкладывай исходники того что есть, суй в тэг [code=cpp][/code] будем смотреть, подскажим
|
|
|
bobdva |
![]()
Сообщение
#15
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Если я правильно понял тебя сайчас, то тебе нужно загрузить сразу два ui, как в примере. И при загрузке второго ui в качестве родителя указать виджет из первого ui. почти, но не совсем то. Логика загрузки грузит только один ui - она не знает, будет ли он грузить другой ui, один ui, или вообще несколько. хочется грубо говоря включения (include, но не include в терминах cpp/h) ui внутрь другого ui |
|
|
Litkevich Yuriy |
![]()
Сообщение
#16
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
bobdva |
![]()
Сообщение
#17
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
помоему непосредственно так сделать нельзя да, судя по всему, стандартными средствами никак, но можно сделать свой компонент (расширяющий QWidget), который будет принимать св-во с указанием имени файла и вот уже его грузить через UiLoader уже почти сделал, но есть некоторые шероховатости - как доделаю - выложу код. и всем спасибо ![]() |
|
|
ViGOur |
![]()
Сообщение
#18
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
как доделаю - выложу код. Будем ждать.А если его немного оформишь описанием, то можно выложить на сайт в раздел Qt Исходники... ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#19
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ViGOur, лучше в вику
|
|
|
ViGOur |
![]()
Сообщение
#20
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
bobdva |
![]()
Сообщение
#21
|
Студент ![]() Группа: Участник Сообщений: 29 Регистрация: 2.10.2008 Из: Москва Пользователь №: 377 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
как доделаю - выложу код. Будем ждать.А если его немного оформишь описанием, то можно выложить на сайт в раздел Qt Исходники... ![]() уф... что-то вот наклепал и выложил у себя в блог: Qt4: dynamic loading ui from an other ui жду комментарии и замечания, и наверно можно будет в более лучшем виде положить в раздел Qt Исходники |
|
|
Litkevich Yuriy |
![]()
Сообщение
#22
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
исходники можно на сайт, а статью можно в вику, и ссылку на сайт где исходнки. В вике можно писать неспеша в своей песочнице.
тему разделил свой custom widget |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 23.6.2025, 23:44 |