广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    Qt怎样实现无边框窗口最大化

    来源:网络收集  点击:  时间:2024-04-23
    【导读】:
    当我们进行Qt编程时,常常需要对窗口进行无边框处理。这样,接下来就可以更为方便地对窗口进行自定义绘制,以便实现更为惊艳的视觉效果。不过,由于窗口没有边框了,所以也存在一个问题:这就是当窗口最大化时,往往会覆盖整个屏幕,将任务栏也遮挡住,从而与我们想要的效果相去甚远。那么,Qt怎样才能实现无边框窗口最大化时不遮挡任务栏呢?工具/原料moreQt 5.6一、需要用到的函数1/4分步阅读

    要想实现无边框窗口最大化时不遮挡任务栏,我们需要用到QDesktopWidget类的 availableGeometry 函数来获取最大化时窗口的大小,该大小将不会包含任务栏的部分。

    现在,我们来看一下 QDesktopWidget 类的 availableGeometry 函数。它的访问权限类型为公有。该函数具有三个重载函数,分别为:

    const QRect QDesktopWidget::availableGeometry(int screen = -1) const;

    const QRect QDesktopWidget::availableGeometry(const QWidget *widget) const;

    const QRect QDesktopWidget::availableGeometry(const QPoint p) const;

    2/4

    第一个重载形式带一个默认参数-1,指出要返回大小的窗口其所在屏幕为默认屏幕。之所以要指出是在哪个屏幕,这是因为一个窗口可能在多个不同的屏幕上显示,而窗口大小是与平台相关的。这个重载形式通常也是我们用得最多的。

    3/4

    第二个重载形式带一个QWidget类型指针,指出要返回窗口大小的屏幕是包含指定QWidget对象的屏幕。

    4/4

    第三个重载形式带一个QPoint对象的引用参数,指出要返回窗口大小的屏幕是包含指定点的屏幕。

    二、示例1/5

    下面,我通过一个具体例子来教大家怎样实现。在这个例子中,要实现的目标是点击右上角的最大化按钮实现无边框窗口最大化,但最大化时不遮挡任务栏。

    2/5

    首先,在设计器界面上的最大化按钮上右击鼠标,选择“转到槽...”。

    3/5

    再选择clicked()信号,点击OK。

    4/5

    在响应最大化按钮的单击事件函数中,先创建一个QDesktopWidget对象,以便获取最大化窗口的大小(不包含任务栏)。

    5/5

    获取到窗口的大小后,将窗口缩放到这个尺寸,再将窗口左上角移动到(0,0)便可以了。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_581044.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 19:48:40  耗时:0.026
    0.0256s