查看完整版本: [-- 双屏/双显示器的问题 --]

QTCN开发网 -> Qt基础编程 -> 双屏/双显示器的问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

cyberpunker 2018-05-12 21:34

双屏/双显示器的问题



窗口平时隐藏,

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

怎么控制显示位置?




fu22507411 2018-05-12 22:21
qApp有个函数
QDesktopWidget *desktop();
QDesktopWidget 可以获取screenCount();
你可以用QWidget *screen(int index= -1);获取指定index的屏幕,然后用获取geometry。


cyberpunker 2018-05-15 17:25

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 2018-05-16 10:38
cyberpunker:https://www.2cto.com/kf/201708/663771.html
QT-程序分辨率和居中显示2017-08-02 13:48:43     0个评论    来源:风之奕帆 技术博客    收藏  我要投稿
....... (2018-05-15 17:25) 

厉害了


查看完整版本: [-- 双屏/双显示器的问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled