• 2463阅读
  • 3回复

[提问]双屏/双显示器的问题 [复制链接]

上一主题 下一主题
离线cyberpunker
 

只看楼主 倒序阅读 楼主  发表于: 2018-05-12


窗口平时隐藏,

呼出时,窗口有时在第一个屏幕弹出,有时在第二个屏幕弹出。

怎么控制显示位置?



离线fu22507411

只看该作者 1楼 发表于: 2018-05-12
qApp有个函数
QDesktopWidget *desktop();
QDesktopWidget 可以获取screenCount();
你可以用QWidget *screen(int index= -1);获取指定index的屏幕,然后用获取geometry。

邮箱jiahao_coffee@foxmail.com 有问题可以免费咨询,有空都会回答,不过太难了我答不上来不要介意哈
离线cyberpunker

只看该作者 2楼 发表于: 2018-05-15

https://www.2cto.com/kf/201708/663771.html


QT-程序分辨率和居中显示2017-08-02 13:48:43     0个评论    来源:风之奕帆 技术博客    收藏  我要投稿

QT分辨率获取以及当前屏幕数量等信息通过调用QDesktopWidget来实现。
1.获取屏幕数量:


?

12

QDesktopWidget *dwsktopwidget = QApplication::desktop();int numScreens=dwsktopwidget->numScreens();
2.获取主屏幕:


?

12
3

QDesktopWidget *dwsktopwidget = QApplication::desktop(); int primary=dwsktopwidget->primaryScreen();

3.获取屏幕分辨率:


?

12
34
56
7

QDesktopWidget *dwsktopwidget = QApplication::desktop(); int primary=dwsktopwidget->primaryScreen(); QRect deskrect = dwsktopwidget->availableGeometry(primary);int screenWidth = deskrect.width();int screenHeight = deskrect.height();

在获取屏幕分辨率时,availableGeometry 是获取可用分辨率,不包括windows任务栏的空间。
4.居中显示程序到主屏幕:
?

1
2
3
4
5
6
7
8


void CLGUIUtil::setShowCenter(QWidget *widget)
{
    QDesktopWidget *dwsktopwidget = QApplication::desktop();  
    
    int primary=dwsktopwidget->primaryScreen();
    QRect deskrect = dwsktopwidget->availableGeometry(primary);
    widget->move((deskrect.width() - widget->width())/2, (deskrect.height() - widget->height())/2);
}
离线jigetage

只看该作者 3楼 发表于: 2018-05-16
回 cyberpunker 的帖子
cyberpunker:https://www.2cto.com/kf/201708/663771.html
QT-程序分辨率和居中显示2017-08-02 13:48:43     0个评论    来源:风之奕帆 技术博客    收藏  我要投稿
....... (2018-05-15 17:25) 

厉害了
快速回复
限100 字节
 
上一个 下一个