QDesktopWidget desktop;
int desktopHeight=desktop.geometry().height();
int desktopWidth=desktop.geometry().width();
this->resize(desktopWidth,desktopHeight);
Run Code Online (Sandbox Code Playgroud)
例如我的主显示器分辨率为1024 x 768,我的扩展显示器分辨率为800x600.我从桌面高度和宽度得到的值是两个显示器分辨率的总和.我只需要获得主显示器分辨率.谁能告诉我怎么样?谢谢.我正在使用qt 4.7.3
编辑:我使用的是双屏幕,特别是在收银台订购时,收银台可以看到主显示器,而且客户可以看到扩展显示器.
根据这里的文档http://doc.qt.io/qt-5/highdpi.htmlQT 5.4+引入了高DPI支持.但是,要么我缺少一些基本的东西,要么目前的支持仍处于非常早期阶段.我正在写一个全新的应用程序,所以我有机会从头开始做.我知道我必须使用布局而不是固定定位等,但总会出现我需要指定的情况,例如控件的最小/最大尺寸.我可以在编辑器中指定它们,但这些是设备像素.因此,如果我将Windows设置更改为使用150%DPI,则编辑器中的最小值/最大值将会太小.当然,我可以获得该比率并调整代码中的所有必需值,但是如果我必须手动完成所有操作,QT会给我什么样的高DPI支持?我的意思是前QT 5.4有什么不同?
然后一个有趣的是QT_DEVICE_PIXEL_RATIO环境变量.它完全符合我的需要,它将编辑器中设置的所有像素乘以一个因子.但为什么它是环境变量而不是每个应用程序设置?为什么它只支持2,3等的整数值,因为我们知道Windows有125,150%等设置,为什么它不能自动读取Windows设置并将自己设置为该值?
截至 Qt 5文档说:
支持的单位有: px:像素 pt:一个点的大小(即 1/72 英寸) em:字体的 em 宽度(即 'M' 的宽度) ex:字体的 ex 宽度字体(即“x”的高度) 但是,Qt 的字体大小仅限于 pt 和 px,任何其他大小都必须以 px、em 或 ex 为单位。
当他们说1emis equal 时"M",他们指的是哪个 M?他们使用哪种字体和 pt 大小来计算?根据其他一些答案,我可以推测它是一些 12pt 字体,但是哪个?
这个问题有一个背景:我们的 Qt 应用程序在 Windows 和 Linux 下具有正常的用户体验,但在 Mac OS 上,字体显得很小。如果我能够弄清楚 pt 与 em 的关系,我可以为 MacOS 设置更好的字体默认值。
em 到 pt 的转换:
我可以通过API调用而不是环境变量来设置QT_AUTO_SCREEN_SCALE_FACTOR 1 行为吗?我想检测我的Qt应用程序是否在高dpi屏幕上运行,然后相应地设置缩放.
我试图在一开始就设置它main,它不工作
QProcessEnvironment::systemEnvironment().insert("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
Run Code Online (Sandbox Code Playgroud)
它旨在与QProcess一起使用,以设置子进程的环境.它不能用于更改当前进程的环境.