Qt/Win:在无框架窗口上显示最大化()重叠任务栏 [英] Qt/win: showMaximized() overlapping taskbar on a frameless window
本文介绍了Qt/Win:在无框架窗口上显示最大化()重叠任务栏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在构建一个具有自己的定制Chrome的应用程序。我已经通过设置标志关闭了默认窗口边框:
this->setWindowFlags(Qt::FramelessWindowHint);
设置此标志并关闭默认窗口边框后,对:
的任何调用this->showMaximized();
结果是一个窗口占据整个屏幕,与任务栏重叠。对于我应该调用而不是showMaximized()的这个或其他方法,有什么通用的解决方法吗?
Win7/Qt4.6
推荐答案
如果继承自QDesktopWidget,您将能够使用availableGeometry(),它根据平台决定可用的内容(例如,不包括MacOSX上的停靠和菜单栏,或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()
{
}
这篇关于Qt/Win:在无框架窗口上显示最大化()重叠任务栏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文