crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Загрузка UI из другого UI
bobdva
  опции профиля:
сообщение 2.10.2008, 21:21
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 2.10.2008
Из: Москва
Пользователь №: 377

Спасибо сказали: 0 раз(а)




Репутация:   0  


Загрузить форму в runtime из ui-файла можно при помощи QUiLoader.
Есть два ui-файла, в одном описан один компонент, в другом компонент, в котором требуется использовать widget, описанный в первом файле.

Как это можно описать в соответствии c форматом ui-файла, и как это можно загрузить в runtime (без предкомпиляции ui в h/cpp)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.10.2008, 21:40
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Если я правильно понял по поводу QUiLoader в ассистенте, то это делается по аналогии с AnalogClock:
QWidget *loadCustomWidget(QWidget *parent)
{
     QUiLoader loader;
     QWidget *myWidget;

     QStringList availableWidgets = loader.availableWidgets();

     if (availableWidgets.contains("AnalogClock"))
         myWidget = loader.createWidget("AnalogClock", parent);

     return myWidget;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bobdva
  опции профиля:
сообщение 2.10.2008, 21:43
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 2.10.2008
Из: Москва
Пользователь №: 377

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 2.10.2008, 22:40) *
Если я правильно понял по поводу QUiLoader в ассистенте, то это делается по аналогии с AnalogClock:
QWidget *loadCustomWidget(QWidget *parent)
{
     QUiLoader loader;
     QWidget *myWidget;

     QStringList availableWidgets = loader.availableWidgets();

     if (availableWidgets.contains("AnalogClock"))
         myWidget = loader.createWidget("AnalogClock", parent);

     return myWidget;
}


в том-то и проблема, что требуемый widget не находится в availableWidgets :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.10.2008, 21:54
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Тогда нужны подробности, почему и прочее...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.10.2008, 21:59
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


bobdva, рекомендую сделать наипростейший проект и выложить его

P.S. Пожалуйста не цитируй сообщения целиком если они большие, выдели интерисующий текст и нажми "++ЦИТАТА"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bobdva
  опции профиля:
сообщение 2.10.2008, 22:00
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 2.10.2008
Из: Москва
Пользователь №: 377

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 2.10.2008, 22:54) *
Тогда нужны подробности, почему и прочее...

хочется иметь возможность изменять формы без необходимости перекомпиляции и при этом использовать компоненты несколько раз.
т.е. есть, например, simpleForm.ui - простая форма, которая должна быть использована как в simpleDialog1.ui, так и в simpleDialog2.ui, которые отличаются ещё между собой чем-то, но содержат одну и ту же simpleForm.
надеюсь понятно объяснил
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.10.2008, 22:01
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


читай мой пост
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bobdva
  опции профиля:
сообщение 2.10.2008, 22:02
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 2.10.2008
Из: Москва
Пользователь №: 377

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 2.10.2008, 22:59) *
bobdva, рекомендую сделать наипростейший проект и выложить его

простейший проект, где из main.cpp грузится simpleForm.ui сделал - ибо всё просто, но как сделать именно с включением одного в ui внутрь другого, и уже его динамечески загрузить в runtime - не могу даже подступиться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.10.2008, 22:07
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


А не проще ли без ui файлов обойтись?
Все можно создавать и на лету, без ui файлов, описав лишь нужные действия в классах и не более того. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bobdva
  опции профиля:
сообщение 2.10.2008, 22:10
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 2.10.2008
Из: Москва
Пользователь №: 377

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 2.10.2008, 23:07) *
А не проще ли без ui файлов обойтись?

требования, что описание должно быть внешним, которое можно как-то быстро менять (qt designer, например), а делать свой велосипед по загрузке этого внешнего описания не хотелось.

Цитата(bobdva @ 2.10.2008, 23:09) *
требования, что описание должно быть внешним, которое можно как-то быстро менять (qt designer, например), а делать свой велосипед по загрузке этого внешнего описания не хотелось.

описание графических диалогов/форм/компонент
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 10:58