首页| 论坛| 消息

标题:双屏/双显示器的问题
作者:cyberpunker
日期:2018-05-12 21:34
内容:

窗口平时隐藏,
呼出时,窗口有时在第一个屏幕弹出,有时在第二个屏幕弹出。
怎么控制显示位置?


#1 [fu22507411 05-12 22:21]
qApp有个函数
QDesktopWidget *desktop();
QDesktopWidget 可以获取screenCount();
你可以用QWidget *screen(int index= -1);获取指定index的屏幕,然后用获取geometry。
#2 [cyberpunker 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);
}
#3 回 cyberpunker 的帖子 [jigetage 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) 
厉害了

回复 发表
主题 版块