Виджет-контейнер |
Здравствуйте, гость ( Вход | Регистрация )
Виджет-контейнер |
Litkevich Yuriy |
10.4.2009, 16:38
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Первое, что приходит в голову по поводу клонирования - пробежатся по всем дочерним виджетам, однако надо будет еще и их свойства скопировать.
Причем с полным соответствием типов похоже, что роботёнки будет навалом.А вот как вызвать new с тем классом который нужно получить можно поглядеть в сторону QMetaObject::newInstanceНо я тоже с такой задачкой не сталкивался, посему могу гененрить идеи и только Цитата This function was introduced in Qt 4.5.
|
|
|
fantom |
10.4.2009, 16:41
Сообщение
#12
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
QMetaObject::newInstance? Это в какой версии qt? У меня в доках по 4,4,2 нет.
Ясно.. А мне кровь из носа не выше 4,4,2 можно использовать |
|
|
Litkevich Yuriy |
10.4.2009, 16:43
Сообщение
#13
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SABROG |
10.4.2009, 16:48
Сообщение
#14
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Сейчас речь идет о стандартных виджетах Qt или о самопальных тоже из каких-нибудь плагинов? Например интересует вопрос, возможно ли скопировать окно типа QMainWindow? Насколько я знаю, в программе должен существовать только один экземпляр этого класса (singleton?).
|
|
|
Litkevich Yuriy |
10.4.2009, 16:49
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
fantom |
10.4.2009, 17:09
Сообщение
#16
|
Студент Группа: Участник Сообщений: 47 Регистрация: 29.1.2009 Пользователь №: 515 Спасибо сказали: 1 раз(а) Репутация: 1 |
Вообще у меня задача стоит клонировать и мои собственные виджеты, которые сделаны как плагины дизайнера.
Впринципе т,к, виджетов не очень много можно сделать case. Но этого бы очень не хотелось бы. Появилась одна идея,, Но для этого нужно будет переопределять все элементы которые необходимо клонировать. Как то так..
|
|
|
igor_bogomolov |
10.4.2009, 22:50
Сообщение
#17
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Как технически клонировать виджет который содержит внутри себя другие объекты. Работа с ним будет происходить примерно следующим образом: в дизайнере мы переносим мышкой необходимый виджет на виджет-контейнер Отклонусь немного от темы (а мож и не отклонюсь ). По двум недавным обсуждения по поводу динамического создания форм (раз два) родилась следущая мысль. Не знаю на сколько хорошая, но право на жизнь имеющая. (Меня покрайней мере было интересно это реализовать). Итак, вопросс Как технически клонировать виджет который содержит внутри себя другие объекты. Сразу хочу оговориться, с XML опыта работы очень мало, так что если есть способ сократить код или сделать более изящно, сделайте это. Мне прошу не пинать И еще, метод domxmlToString был позаимствован у xintrea здесь (ссылка) Итак, изначально форма, виджет-контейнер и все что в нем, создается в дисигнере. Т.е. мы имее ui файл. шаг №1
шаг №2
шаг №3 (заключительный)
приложение. Описание метода domxmlToString
Вот что получилось у меня(см. прикрепленные рисунки). Как видете я создал два клона части своего приложения, Все свойства при этом сохранены, в том числе и ресурсы. Ух. Я в тему надеюсь ? Даже если не совсем, хвалим меня, я старался |
|
|
Litkevich Yuriy |
10.4.2009, 23:01
Сообщение
#18
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
igor_bogomolov, вся эта процедура нужна для того, чтобы извлечь только нужный виджет из ui-файла, я правильно понял?
|
|
|
igor_bogomolov |
10.4.2009, 23:14
Сообщение
#19
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
igor_bogomolov, вся эта процедура нужна для того, чтобы извлечь только нужный виджет из ui-файла, я правильно понял? Нужный виджет, со всем его содержимым(т.е. расположенными на нем другими виджетами) и с сохранением его свойств, и свойств элементов на нем расположенных.И сделать столько копий подобного объекта, сколько потребуеься. В общем на прилогаемом выше рисунке все видно. |
|
|
igor_bogomolov |
11.4.2009, 0:52
Сообщение
#20
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
|
|
|
Текстовая версия | Сейчас: 20.11.2024, 7:32 |