LINUX.ORG.RU

Добавить фрейм в форму QT


0

0

Есть форма, на ней расположены 3 (точнее даже 4 - 4ый невидимый)фрейма в порядке top,center,bottom,invisible. Фреймы занимают всю область экрана и разделены раздвижным разделителем. Хочу добавить еще например 2 фрейма и сделать top,frame1,center,frame2,bottom,invisible. Пересоздавать фреймы нельзя, т.к. на них находится нужная информация. Пробовал прятать их и менять геометрию, но что-то не особо получается. Размеры у первоначальных фреймов должны остаться без изменений.


Я не понял, ты хочешь добавлять Фраймы уже после конструктора Виджета?

anonymous
()

ну у меня как бы есть общий виджет, я на него накладываю еще 3(4), разделенные сплиттером на эти верхние виджеты я наношу информацию потом я хочу на нижний виджет добавить еще парочку виджетов верхнего уровня, чтобы новые виджеты находились между старых. И все виджеты должны отделяться друг от друга сплиттерами. Метод show() у виджетов вызывается в нужном порядке, но отображаются они не совсем там где хотелось.А именно, новые виджеты все равно остаются ниже всех 4х начальных виджетов. А хотелось чтобы они были в перемешку.

EraSER
() автор топика
Ответ на: комментарий от EraSER

Я вот как вижу:

на общем Виджете стоит Лайоут в который добавляются Сплиттеры. Когда добавляешь новые Виджеты, то из Лайота удаляешь все Сплиттеры и в новой последовательности собираешь Лайоут заново.

anonymous
()
Ответ на: комментарий от anonymous

Парни, а какую тулзу вы используете ??? Мне было бы тоже интересно с этим побаловаться, по крайне мере пока побаловаться.

anonymous
()

что значит в данном случае "собираешь Лайоут заново" ? Сплиттер один, от него порождены все виджеты верхнего уровня. Еще раз повторюсь - информация на виджетах не должна потеряться

EraSER
() автор топика
Ответ на: комментарий от EraSER

А ты не можешь добавлять сразу 5(6) Виджетов? 3(4) твоих начальных и 2 которые потом. Добавляешь в том порядке в котором они должны быть когда их 5(6),а не нужные прячешь (hide ()), а потом открываешь(show ()).

anonymous
()

нет, не могу. количество добавляемых виджетов не ограничено - я могу не один раз добавлять по 2 виджета и сколько их будет всего заранее не известно

EraSER
() автор топика
Ответ на: комментарий от EraSER

Ну тогда предлагаю следующее

Из сплиттера выводишь всех детей (removeChild (QObject*)), обрати внимание, что дети не удаляются, а просто выводятся из его списка. Затем заново вставляешь в нужном порядке (insertChild (QObject*)) Соответственно, можешь добавить сколько угодно новых детей.

Должно работать.

anonymous
()

Yesssss ! Клево, спасибо !

EraSER
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.