Qt5 多显示器获取不同显示器的分辨率和位置的方法

注意(2020/1/17):此博客编写时间较早,现 QDesktopWidget 已被废弃不建议继续使用,不建议继续阅读此博客作为参考

先放官方文档链接:QDesktopWidget - Qt5 Reference

之前一直在用被我乱搞后的ShadowPlayer作为默认播放器,后来主力系统换成linux了也就没再用了。这两天the Witness发布,也正好想玩一些别的windows only的游戏,于是回到windows打算好好玩一玩游♂戏。而这几天因为集训也还是在机房,于是我拿着我那台电脑显示器连着笔记本玩双屏很爽,回到windows后发现依然很爽,不过播放器mini界面会有bug,总是会回到主显示器的最右面,于是打算修一修,然后就有了这一片水文(

在只有一个显示器的时候,获得显示器分辨率的方法是

    miRPos = QApplication::desktop()->screenGeometry().width(); //原来的写法,奇怪的变量名先无视

然而实际发现无论如何这个得到的分辨率都是主显示器的完整分辨率。然后查了Qt的Reference,才发现,这个的原型是

	const QRect QDesktopWidget::screenGeometry(int screen = -1) const

其中的参数就是显示器的id,默认是-1,如果是多个显示器,则显示器编号依次为0(主显示器),1,2,3...额,这个编号和你在设置里看到的编号没一点关系

04-28 07:17