Qt/Win:在无框架窗口上显示最大化()重叠任务栏 [英] Qt/win: showMaximized() overlapping taskbar on a frameless window

查看:18
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆