Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Yegor от Январь 06, 2010, 20:21



Название: Виджет верхнего уровня.
Отправлено: Yegor от Январь 06, 2010, 20:21
Здравствуйте!
У меня есть главное диалоговое окно. На нем разбросаны куча виджетов. Я хочу по нажатию кнопки чтобы один виджет растягивался на все диалоговое окно. И было только этот один виджет виден, а остальные спрятались. На деле, когда я запускаю программу и расстягиваю один виджет на все диалоговое окно, то остальные виджеты не прячутся, а рисуются поверх моего виджета. Даже если я для них делаю ->hide(), то они все равно появляются поверх. Как сделать свой виджет, чтобы он рисовался поверх всех остальный виджетов? Чтобы остальные прятались за ним? Укажите, пожалуйста, где копать.


Название: Re: Виджет верхнего уровня.
Отправлено: lit-uriy от Январь 06, 2010, 20:40
А стоит ли так делать? Если только один виджет будет виден за раз, то и создавай только его, когда станет не нужен удалишь, создашь и отобразишь другой


Название: Re: Виджет верхнего уровня.
Отправлено: Igors от Январь 06, 2010, 20:45
Здравствуйте!
У меня есть главное диалоговое окно. На нем разбросаны куча виджетов. Я хочу по нажатию кнопки чтобы один виджет растягивался на все диалоговое окно. И было только этот один виджет виден, а остальные спрятались. На деле, когда я запускаю программу и расстягиваю один виджет на все диалоговое окно, то остальные виджеты не прячутся, а рисуются поверх моего виджета. Даже если я для них делаю ->hide(), то они все равно появляются поверх. Как сделать свой виджет, чтобы он рисовался поверх всех остальный виджетов? Чтобы остальные прятались за ним? Укажите, пожалуйста, где копать.
Если Вы хотите по нажатию кнопки "что-то убрать а что-то показать/растянуть", то прямой путь использовать QStackedLayout/QStackedWidget. Использовать hide() тоже можно но более хлопотно и оно должно быть вызвано ДО растяжки.