我正在开发一个拥有自定义Chrome的应用程序。我通过设置以下标志关闭了默认窗口边框:
this->setWindowFlags(Qt::FramelessWindowHint);
设置此标志并关闭默认窗口边框后,任何调用以下内容的操作:
this->showMaximized();
结果在一个覆盖任务栏并占据整个屏幕的窗口中显示。有没有常见的解决方法或者我应该调用showMaximized()之外的其他方法?
Win7/Qt4.6
不应该从QDesktopWidget
继承。
您可以通过从QApplication::desktop获取QDesktopWidget
实例来获得“可用几何”:
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());
#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()
{
}