Qt - 获得当前窗口所在屏幕的大小

发布时间 2023-11-02 19:14:12作者: [BORUTO]

qt获得当前窗口所在屏幕的大小

 

假如这个窗口的指针为this,记得要加头文件哦

#include <QDesktopWidget>
#include <QApplication>

//获得当前屏幕是第几屏幕
int number = QApplication::desktop()->screenNumber(this);
//如果number是-1会出现崩溃,就是用默认0
if(number<0){
number=0;
}
//根据number获得当前窗口所在屏幕的大小
QSize size = QGuiApplication::screens().at(number)->geometry().size()

 

Qt中,QDesktopWidget封装了一系列用于多屏处理的函数,头文件:#include <QDesktopWidget>

1、使用QDesktopWidget::screenCount()获取当前操作系统的可用屏幕数

2、使用QDesktopWidget::primaryScreen()获取主屏幕的索引

3、使用QDesktopWidget::availableGeometry()获取可用屏幕大小的矩形

4、使用QDesktopWidget::screenGeometry(int screen = -1)获取指定索引下的屏幕。主屏幕的索引一般为0,这样我们就可以通过这个函数判断鼠标在哪个屏幕了,如,判断鼠标是否在主屏幕内:
if(QDesktopWidget::screenGeometry(0).contains(event->globalPos())//event为鼠标事件

5、使用setGeometry设置UI所在屏幕:
this->setGeometry(QDesktopWidget::screenGeometry(0));//设置UI到第一个屏幕
Tips:使用QApplication::activeWindow()可以获取拥有键盘输入焦点的应用程序顶级窗口