Qt获取当前窗口所在屏幕的分辨率和位置

1. 需求

在Qt中,有时候需要在图形界面中获取当前窗口的位置和尺寸。
如果是单个屏幕的话,可能只需要获取当前屏幕的尺寸就行了,如果多个屏幕的话,还可能需要获取屏幕的位置。

2. 方法

首先,找到控件所在的界面,如QDialogQMainWindow的子类,其都有成员函数screen(),通过此成员函数都能获取窗口所在的屏幕。 可以使用如下的语句。
首先引入所需的头文件:

#include <QDebug>	// 为了打出日志
#include <QScreen>

在相应的界面类中,执行如下的代码:

    qDebug() << this->screen()->geometry();
    qDebug() << this->screen()->size();

如果在这些类外面执行,将上面的指针this改成相应的窗口指针即可。
如果仅仅是获取尺寸的话,使用screen()->size()就行了,而screen()->geometry()可以获取屏幕所在的左上角点的位置。

3. 多屏幕情况下的屏幕位置

例如,我的机器连接着如下的两个屏幕:
在这里插入图片描述
其中屏幕2为主屏幕,那么在屏幕2上通过screen()->geometry()获取的值为QRect(0,0 1920x1080),这里面的前两个值就是屏幕所在的位置,也就是0, 0,即为屏幕2上左上角点的位置(如图中B位置)。
那么屏幕1的位置根据主屏幕(屏幕2)来确定,使用上面的方法,得到QRect(-3840,0 3840x2160),可以看到A点的坐标的X轴为负数。
如果想要移动窗口的时候,例如使用move(x, y)的时候,如果是在非主屏上操作,一定要考虑屏幕起点的位置。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值