Qtui界面2k显示器显示不全的问题

1.做项目时,运行qt生成界面控件字体显示不全,参考下面的博客解决。

用的是 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 好多博客都提到了

参考:Qt5.9界面设计中控件的文字显示不完全解决方案_冰蓝樱草的博客-CSDN博

 

2.还找到一个博客,里面设置字体增大问题没有试成功

Qt4K高分屏自适应,解决字体没有跟随组件增大的问题 - VE视频引擎 - 博客园 (cnblogs.com)

添加里面的代码

const float DEFAULT_DPI = 96.0;
HDC screen = GetDC(NULL);
FLOAT dpiX = static_cast<FLOAT>(GetDeviceCaps(screen, LOGPIXELSX));
ReleaseDC(0, screen);
float fontSize = dpiX / DEFAULT_DPI;
QFont font = a.font();
font.setPointSize(font.pointSize()*fontSize);
a.setFont(font);

出现问题无法解析的外部信号__imp_GetDeviceCaps。解决方法如下。

参考:问题解决--无法解析的外部符号 _imp_XXXXXXXXX - 为取经而来 - 博客园 (cnblogs.com)

关于#pragma comment:的说明。#pragma comment 是#pragma 下的一个子命令,意义是使用注释的方式引入库或编译目录。参考如下

参考: QT error: LNK2019: 无法解析的外部符号 __imp__SendMessageW@ 类型的错误 以及 pragma comment 的作用(用法)_漫步繁华街的博客-CSDN博客

 

3.

我更改显示器屏幕的缩放比,发现屏幕缩放比100% 125% QtCreator的缩放比是1x;屏幕缩放比150% QtCreator的缩放比是2x

跟qt程序产生的界面没有关系,在屏幕缩放比150%时,界面显示的超级大

参考: Qt Windows高清DPI自适应分辨率缩放,比较完美的解决方案_sethighdpiscalefactorroundingpolicy_Up to the mountain的博客-CSDN博客

 

4.下面这个博客有3种方法,其中一种参考了3中博客的解决办法

参考:Qt面对高分辨率屏幕的解决方法思考_qt高分辨率_悍将08的博客-CSDN博客

 

5. 这里有一个知乎问答

目前桌面开发中,高分屏已经非常多了,大家都使用的windows自带的缩放比例,比如说120%,150%等等。目前使用过两种办法:1、程序当前目录新建一个qt.conf文件,内容为WindowsArguments = dpiawareness=0;2、Qt5.6版本后使用QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

第一种方法显示比例都是正常的,但是在缩放比例设置到150%之后,界面显示非常模糊;第二种方法显示比较高清,但是缩放的倍数是四舍五入的,比如说125%显示100%,150%显示200%,体验极其不好。

参考: 目前Qt有没有比较好解决高分屏下缩放显示的方案? - 知乎 (zhihu.com)

验证QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);缩放比例改大,如果有控件设置的不对,这个方法也会不起作用

 

 

 

20230412

我感觉和屏幕分辨率没关系,和缩放比有直接关系。缩放比设置为100%,不会出现字体在控件里显示不去全的问题,比如下图所示

 

把屏幕缩放比改成100%后,在高分辨率屏幕下只会出现字体和控件整体显示变小的情况,我觉得是因为像素点个数不一样。比如100个像素点,在2k屏幕上(2560*1440)显示的就会短 ,在1080p屏幕上(1920*1080)显示的就长。

posted @ 2022-11-05 20:07  小头痛  阅读(1177)  评论(0编辑  收藏  举报