Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Mike от Января 25, 2010, 15:02



Название: Проблема с разворачиванием окна
Отправлено: Mike от Января 25, 2010, 15:02
Убираю заголовок окна:
cMainWindow::cMainWindow( QWidget* parent /*= 0*/ )
   : QMainWindow(parent, Qt::CustomizeWindowHint),
{
}

далее имеется слот который сворачивает/разворачивает окно на весь экран:
void cMainWindow::toggleMaximize()
{
   isMaximized() ? showNormal() : showMaximized();
}

При разворачивании на весь экран форма перекрывает и панель задач, как если бы использовался showFullScreen()
Как решить проблему?


Название: Re: Проблема с разворачиванием окна
Отправлено: sendevent от Января 25, 2010, 15:59
как вариант - править геометрию самостоятельно с учетом
const QRect QDesktopWidget::availableGeometry ( int screen = -1 ) const; (http://doc.trolltech.com/4.6/qdesktopwidget.html#availableGeometry)


Название: Re: Проблема с разворачиванием окна
Отправлено: Mike от Января 25, 2010, 17:40
Про это я уже думал. Но это ведь не красивый метод :)


Название: Re: Проблема с разворачиванием окна
Отправлено: shadone от Января 26, 2010, 15:58
Убираю заголовок окна:
cMainWindow::cMainWindow( QWidget* parent /*= 0*/ )
   : QMainWindow(parent, Qt::CustomizeWindowHint),
{
}

далее имеется слот который сворачивает/разворачивает окно на весь экран:
void cMainWindow::toggleMaximize()
{
   isMaximized() ? showNormal() : showMaximized();
}

При разворачивании на весь экран форма перекрывает и панель задач, как если бы использовался showFullScreen()
Как решить проблему?
"так и задумано". Когда создается окно с CustomizeWindowHint это означает что будет проигноирована рамка окна. При максимизации такого окна средствами Windows (ShowWindow SW_SHOWMAXIMIZED) операционная система разворачивает его игнорируя таскбар и прочие препятствия.