Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: OS2 от Октябрь 21, 2008, 11:43



Название: Манипуляции с Виджетами.
Отправлено: OS2 от Октябрь 21, 2008, 11:43
Добрый день!
Столкнулся с такой проблемой: в окне, производном от QMainWindow, создается несколько виджетов (производных от QWidget), которые перекрывают друг друга. Вопрос в следующем: как вытащить самый нижний виджет поверх остальных?
Всем заранее спасибо!


Название: Re: Манипуляции с Виджетами.
Отправлено: spirit от Октябрь 21, 2008, 11:54
установить этому виджету флаг Qt::WindowStaysOnTopHint, только в ассистанте почитайте примечание.


Название: Re: Манипуляции с Виджетами.
Отправлено: pastor от Октябрь 21, 2008, 11:55
QWidget::activateWindow(), QWidget::raise()

Если используеться MDI на основе QMdiArea, то QMdiArea::setActiveSubWindow(QMdiSubWindow *window); если на основе QWorkspace, то QWorkspace::setActiveWindow( QWidget * w )


Название: Re: Манипуляции с Виджетами.
Отправлено: OS2 от Октябрь 21, 2008, 12:26
Не один из способов не помог. Окно не MDI.  :(


Название: Re: Манипуляции с Виджетами.
Отправлено: OS2 от Октябрь 21, 2008, 13:10
Цитировать
нужному виджету сделай raise()
Я ж написал, что не один из способов не помог. Что странно, на 4.4.1 все работало отлично, а на 4.4.3 не хочет.
Цитировать
при чём тут окно?
Цитировать
Если используеться MDI на основе QMdiArea, то .....


Название: Re: Манипуляции с Виджетами.
Отправлено: Alex Custov от Октябрь 21, 2008, 17:07
Если в 4.4.1 точно работает, то закинь багу: http://trolltech.com/bugreport-form


Название: Re: Манипуляции с Виджетами.
Отправлено: SASA от Октябрь 22, 2008, 19:40
void QWidget::stackUnder ( QWidget * w ) - работает в 4.4.3
Вывод создаём окно, суём под него нужное, удаляем первое.
Извращение, но может заработает.