Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > > >
Восстановить пароль Регистрация
 
Хулиган
Форумчанин
55 / 50 / 2
Регистрация: 08.08.2012
Сообщений: 477
01.11.2013, 01:22     Динамическое изменения содержимого виджета
  #1
Читаю Qt 4.8 Шлее возможно что то упустил, допустим есть виджет с кнопкой, связываем кнопку со слотом который делает чтот вроде такого:

Код C++
1
2
3
4
5
6
7
8
void boom()
{
    QVBoxLayout* box = new QVBoxLayout;
    
    ...
    
    setLayout(box);
}
вместо ... создаем новые кнопки и добавляем их в layout , почему по нажатию на кнопку вместо нее не появляется содержимое нового layouta? или это через события делается?
AdAgent
Объявления
01.11.2013, 01:22
Elboy
Форумчанин
130 / 111 / 2
Регистрация: 01.09.2012
Сообщений: 283
01.11.2013, 02:20
  #2
Цитата Сообщение от Хулиган Посмотреть сообщение
добавляем их в layout
лейауты не содержат виджеты, а упорядочивают. То, что вы сделали по нажатию кнопки, - это установили вертикальный лейаут на родительский виджет.

Если хотите добавить в родительский виджет новые кнопки, то добавьте их в родительский лейаут(если он, конечно, есть):
parentLayout->addWidget(pNewButton);
Хулиган
Форумчанин
55 / 50 / 2
Регистрация: 08.08.2012
Сообщений: 477
01.11.2013, 02:37  [ТС]
  #3
Я имел ввиду что на виджете кнопка, при её нажатии она пропадает и появляются другие кнопки. Ну типо как в обычной программе нажимаем кнопку и попадаем уже на другую "страницу" с кнопками текстом и т.д. а главное окно остается
Elboy
Форумчанин
130 / 111 / 2
Регистрация: 01.09.2012
Сообщений: 283
01.11.2013, 10:51
  #4
Удаляем нажатую кнопку, запихиваем в родительский лейаут новые кнопки.
Хулиган
Форумчанин
55 / 50 / 2
Регистрация: 08.08.2012
Сообщений: 477
01.11.2013, 18:42  [ТС]
  #5
Цитата Сообщение от Elboy Посмотреть сообщение
Удаляем нажатую кнопку, запихиваем в родительский лейаут новые кнопки.
Это вообще правильный подход? Например есть кнопка "Опции", нажимаем и на этом же виджете появляются доступные опции. В реальных программах это реализуется с помощью удаления кнопок с главного виджета и добавление новых?
Elboy
Форумчанин
130 / 111 / 2
Регистрация: 01.09.2012
Сообщений: 283
01.11.2013, 22:12
  #6
Цитата Сообщение от Хулиган Посмотреть сообщение
В реальных программах это реализуется с помощью удаления кнопок с главного виджета и добавление новых
да реализовать-то можно по-всякому

Цитата Сообщение от Хулиган Посмотреть сообщение
есть кнопка "Опции", нажимаем и на этом же виджете появляются доступные опции
QStackedWidget
Хулиган
Форумчанин
55 / 50 / 2
Регистрация: 08.08.2012
Сообщений: 477
01.11.2013, 22:22  [ТС]
  #7
Цитата Сообщение от Elboy Посмотреть сообщение
да реализовать-то можно по-всякому
а как наиболее часто это делается? допустим на виджете отображаются флажки, я выбираю нужные, нажимаю кнопку далее и тут ооппп и на том месте, где были кнопки прорисовуются фигуры а под ними уже другие кнопки, т.е главное меню(типо приветствие, меняется на рисование фигур)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 22:33

Еще ссылки по теме:

C++ Qt Габариты виджета

C++ Qt Слот перемещения виджета

C++ Qt Изменение виджета

C++ Qt Динамическое изменение размера составного виджета

Elboy
Форумчанин
130 / 111 / 2
Регистрация: 01.09.2012
Сообщений: 283
01.11.2013, 22:33     Динамическое изменения содержимого виджета
  #8
как уже и было сказано - QStackedWidget. Мы ничего не удаляем, просто перелистываем виджеты.
Yandex
Объявления
01.11.2013, 22:33
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему
Опции темы

Текущее время: 15:48. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.