Qt / win: showMaximized () перекрывающаяся панель задач в безрамочном окне - PullRequest
6 голосов
/ 15 апреля 2010

Я создаю приложение, которое имеет свой собственный хром. Я установил флажок окна по умолчанию, установив флаг:

this->setWindowFlags(Qt::FramelessWindowHint);

После того, как этот флаг установлен и граница окна по умолчанию отключена, любые вызовы:

this->showMaximized();

в результате появляется окно, которое занимает весь экран, перекрывая панель задач. Есть ли общий метод обхода этого или другого метода, который я должен вызывать вместо showMaximized ()?

Win7 / Qt4.6

Ответы [ 2 ]

7 голосов
/ 01 сентября 2011

Вы не должны наследовать от QDesktopWidget.

Вы можете получить «доступную геометрию», получив экземпляр QDesktopWidget из QApplication :: desktop :

QDesktopWidget *desktop = QApplication::desktop();
// Because reserved space can be on all sides of the scren
// you have to both move and resize the window
this->setGeometry(desktop->availableGeometry());
5 голосов
/ 16 апреля 2010

Если вы унаследуете от QDesktopWidget, вы сможете использовать availableGeometry (), который возвращает доступную геометрию экрана с индексным экраном в зависимости от того, какая платформа решит, доступна ли (например, исключая док-панель и строку меню на Mac OS X или панель задач в Windows).

#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui>
class Widget : public QDesktopWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H



#include "widget.h"
#include <QtGui>

Widget::Widget(QWidget *parent) : QDesktopWidget()
{
    this->setWindowFlags(Qt::FramelessWindowHint);
    this->showMaximized();
    this->resize(width(), availableGeometry().height());
}

Widget::~Widget()
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...