当前位置: 首页 > news >正文

Qt 程序 DPI 适配方法归纳

方案1:通过 Windows api 处理

缺点:放大之后界面会模糊。

  • 通过调用api实现
#include <ShellScalingAPI.h>
#pragma comment(lib, "Shcore.lib")HRESULT hr = SetProcessDpiAwareness(PROCESS_SYSTEM_DPI_AWARE);
  • 或者使用qt.conf 实现

在资源qrc里添加,:/qt/etc/qt.conf, qt.conf 文件内容为:

[Platforms]
WindowsArguments = dpiawareness=1

dpiawareness 的取值0,1,2取自枚举:PROCESS_DPI_AWARENESS

typedef enum PROCESS_DPI_AWARENESS {PROCESS_DPI_UNAWARE = 0,PROCESS_SYSTEM_DPI_AWARE = 1,PROCESS_PER_MONITOR_DPI_AWARE = 2
} ;

PROCESS_DPI_UNAWARE
值: 0
DPI 不知道。 此应用不会缩放 DPI 更改,并且始终假定其比例系数为 100% (96 DPI) 。 系统将在任何其他 DPI 设置上自动缩放它。
PROCESS_SYSTEM_DPI_AWARE
值:1
系统 DPI 感知。 此应用不会缩放 DPI 更改。 它将查询 DPI 一次,并在应用的生存期内使用该值。 如果 DPI 发生更改,应用将不会调整为新的 DPI 值。 当 DPI 与系统值发生更改时,系统会自动纵向扩展或缩减它。
PROCESS_PER_MONITOR_DPI_AWARE
值: 2
按监视器 DPI 感知。 此应用在创建 DPI 时检查 DPI,并在 DPI 发生更改时调整比例系数。 系统不会自动缩放这些应用程序。

方案2:Qt处理(Qt 5.14 以上版本)

遗留问题:不同分辨率下gif图片会出现锯齿、模糊

  • 在 main() 中添加如下代码:
	// 1. 全局缩放使能QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true); // 2. 适配非整数倍缩放		QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);// 3. 适配字体渲染 hintingQFont font;font.setStyleStrategy(QFont::PreferAntialias);font.setHintingPreference(QFont::PreferFullHinting);QApplication::setFont(font);
  • 确保所有的尺寸单位使用 px

qt字体的默认单位为 pt,而 pt 作为尺寸单位在自动缩放时存在问题。因此,需要手动设定所有字体大小,一种方法是在 Qt Designer 中编辑目标控件的 stylesheet 将字体尺寸用 px 重新设定。二种方法是在代码中设定字体大小(代码中设定尺寸默认单位均为 px)。

方案3:Qt6

升级到qt6之后基本解决了常见问题,不过qt6不支持win7

方案4:Qt低版本,计算DPI系数,逐个设置控件大小。

繁琐,但好用,没有qt给的解决方案的各种问题

	double  G_RATIO_X;...#define RATIO_X(x) (G_RATIO_X*(x))...//系统DPIQDesktopWidget desk;G_RATIO_X = desk.logicalDpiX()*1.0 / (DPI_DEFUALT*1.0);//DPI_DEFUALT 是96//设置大小resize(RATIO_X(800), RATIO_X(600));...pLabel->setFixedSize(RATIO_X(18), RATIO_X(18));

相关文章:

Qt 程序 DPI 适配方法归纳

方案1&#xff1a;通过 Windows api 处理 缺点&#xff1a;放大之后界面会模糊。 通过调用api实现 #include <ShellScalingAPI.h> #pragma comment(lib, "Shcore.lib")HRESULT hr SetProcessDpiAwareness(PROCESS_SYSTEM_DPI_AWARE);或者使用qt.conf 实现 在…...

AI刷题-小R的随机播放顺序、不同整数的计数问题

目录 一、小R的随机播放顺序 问题描述 测试样例 解题思路&#xff1a; 问题理解 数据结构选择 算法步骤 最终代码&#xff1a; 运行结果&#xff1a; 二、 不同整数的计数问题 问题描述 测试样例 解题思路&#xff1a; 问题理解 数据结构选择 算法步骤 最终…...

windows 极速安装 Linux (Ubuntu)-- 无需虚拟机

1. 安装 WSL 和 Ubuntu 打开命令行&#xff0c;执行 WSL --install -d ubuntu若报错&#xff0c;则先执行 WSL --update2. 重启电脑 因安装了子系统&#xff0c;需重启电脑才生效 3. 配置 Ubuntu 的账号密码 打开 Ubuntu 的命令行 按提示&#xff0c;输入账号&#xff0c;密…...

【影刀_常规任务计划_API调用】

影刀_常规任务计划 1、在常规任务计划被关闭或者设置了定时任务的情况下&#xff08;非手动执行&#xff09;&#xff0c;通过API的方式启动任务&#xff0c;任务仍然可以被正常执行。 2、如果在常规任务计划里面应用中填写的参数的话&#xff0c; 如果通过api执行&#xff…...

参数校验 Spring Validation框架

后端参数校验 解决&#xff1a;校验前端传入的参数是否符合预期 1、引入依赖 使用Spring Validation框架 <!-- validation参数校验框架--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validatio…...

Spring Boot 基础入门指南

Spring Boot 基础入门指南 引言 在当今快速发展的软件行业中&#xff0c;开发者们一直在寻找简化应用程序开发的方法。Spring Boot 应运而生&#xff0c;它旨在帮助开发者快速构建基于Spring框架的应用程序&#xff0c;同时尽可能减少配置工作。本文将带您了解Spring Boot的基…...

doc、pdf转markdown

国外的一个网站可以&#xff1a; Convert A File Word, PDF, JPG Online 这个网站免费的&#xff0c;算是非常厚道了&#xff0c;但是大文件上传多了之后会扛不住 国内的一个网站也不错&#xff1a; TextIn-AI智能文档处理-图像处理技术-大模型加速器-在线免费体验 https://…...

基于 HTML5 Canvas 制作一个精美的 2048 小游戏--day 1

基于 HTML5 Canvas 制作一个精美的 2048 小游戏 在这个快节奏的生活中&#xff0c;简单而富有挑战性的游戏总能给我们带来乐趣。2048 是一款受欢迎的益智游戏&#xff0c;不仅考验智力&#xff0c;还能让人回味无穷。今天&#xff0c;我带领大家将一起学习如何使用 HTML5 Canv…...

知识图谱入门(一)

最近在研究Graph RAG项目&#xff0c;因此对相关内容做个总结&#xff0c;首先从知识图谱开始&#xff0c;供大家参考。 知识图谱是结构化知识表示的一种形式&#xff0c;它将知识组织成一个多关系图&#xff0c;其中节点表示实体&#xff0c;边表示实体之间的关 系。知识图谱…...

springboot项目-基础数据回显

一.基础数据回显说明 微服务项目中由于从服务独立的角度考虑&#xff0c;对数据库做了分库的处理。对于基础数据表来说&#xff0c;各个服务都是需要的。项目中在使用基础数据时&#xff0c;往往是在sql中写连接然后获取基础数据的名称。例&#xff1a; select wi.name,bc.ci…...

LabVIEW实现油浸式变压器自主监测与实时报告

油浸式变压器广泛应用于电力系统中&#xff0c;尤其是在电力传输和分配领域。为了确保变压器的安全、稳定运行&#xff0c;及时监测其工作状态至关重要。传统的变压器监测方法通常依赖人工巡检和定期检查&#xff0c;但这不能及时发现潜在的故障隐患&#xff0c;且效率较低。随…...

K8S 亲和性与反亲和性 深度好文

今天我们来实验 pod 亲和性。官网描述如下&#xff1a; 假设有如下三个节点的 K8S 集群&#xff1a; k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8-alpine docker pull nginx…...

关于php语言api接口开发的流程

确定接口需求&#xff1a;首先明确接口的功能和需求&#xff0c;包括输入参数、输出结果以及接口的业务逻辑。 设计接口路由&#xff1a;根据接口需求&#xff0c;设计具体的接口路由&#xff0c;即URL路径&#xff0c;用于访问接口。 搭建PHP环境&#xff1a;确保你的服务器上…...

医疗集群系统中基于超融合数据库架构的应用与前景探析

一、引言 1.1 研究背景与意义 随着医疗信息化的飞速发展,医疗数据呈爆炸式增长。从日常诊疗记录、患者病历,到各类医疗影像、检查检验数据等,海量信息不断涌现。据统计,医疗数据的年增长率高达 30% 以上 ,2025 年,全球医疗数据量将达到 2314 艾字节(EB)。如此庞大的数…...

浅谈云计算15 | 存储可靠性技术(RAID)

存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…...

43.Textbox的数据绑定 C#例子 WPF例子

固定最简步骤&#xff0c;包括 XAML&#xff1a; 题头里引入命名空间 标题下面引入类 box和block绑定属性 C#&#xff1a; 通知的类&#xff0c;及对应固定的任务 引入字段 引入属性 属性双触发&#xff0c;其中一个更新block的属性 block>指向box的属性 从Textbo…...

LLM大语言模型的分类

从架构和功能的角度来看&#xff0c;LLM&#xff08;Large Language Model&#xff0c;大语言模型&#xff09;主要可以分为以下几种类型&#xff1a; **1. 基础语言模型&#xff1a;** * **定义:** 通过在大规模文本数据上进行预训练&#xff0c;学习语言的规律和模式&#…...

【北京迅为】iTOP-4412全能版使用手册-第八十七章 安装Android Studio

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...

【深度学习】神经网络之Softmax

Softmax 函数是神经网络中常用的一种激活函数&#xff0c;尤其在分类问题中广泛应用。它将一个实数向量转换为概率分布&#xff0c;使得每个输出值都位于 [0, 1] 之间&#xff0c;并且所有输出值的和为 1。这样&#xff0c;Softmax 可以用来表示各类别的预测概率。 Softmax 函…...

容器渗透横向

本质上要获得 1.获得容器IP段 2.获得主机IP段 3.获得本机IP 4.通过CNI或Docker0等扫描本机端口 Flannel 容器信息 rootubuntu-linux-22-04-desktop:/home/parallels/Desktop# k get po -A -o wide NAMESPACE NAME …...

**AI仿真人剧机构推荐,2025年引领娱乐新潮流**随着科技的飞速发展,AI技术已经渗透到我们生活的方方面面。在娱乐领域,AI仿真人剧机构如同一颗璀璨的新星,正在引领着新一轮的潮流。那么,在众多

随着科技的飞速发展&#xff0c;AI技术已经渗透到我们生活的方方面面。在娱乐领域&#xff0c;AI仿真人剧机构如同一颗璀璨的新星&#xff0c;正在引领着新一轮的潮流。那么&#xff0c;在众多的AI仿真人剧机构中&#xff0c;如何选择一家优质的机构呢&#xff1f;本文将为您揭…...

知识蒸馏(Knowledge Distillation)完全指南:原理、实践与进阶

一句话概括&#xff1a;知识蒸馏是一种模型压缩技术&#xff0c;它让一个轻量级的“学生模型”模仿一个高性能的“教师模型”的输出行为&#xff0c;从而在保持小体积、低延迟的同时&#xff0c;获得接近大模型的能力。一、为什么需要知识蒸馏&#xff1f;—— 大模型的“奢侈”…...

不用第三方工具!用Altium Designer 24原生功能实现Allegro到PADS的PCB文件转换

解锁Altium Designer 24原生转换能力&#xff1a;Allegro到PADS的PCB文件高效迁移指南 在硬件开发领域&#xff0c;跨EDA平台协作已成为常态。当设计团队使用不同工具链时&#xff0c;文件格式转换往往成为效率瓶颈。传统方案依赖第三方转换工具&#xff0c;不仅增加成本&#…...

RRFLibraries:Duet 3D打印机固件的硬实时C++驱动库

1. RRFLibraries 项目概述RRFLibraries 是 RepRapFirmware 生态系统中高度工程化的底层软件基础设施&#xff0c;其定位并非通用型嵌入式库&#xff0c;而是专为 3D 打印固件——特别是 Duet 系列控制器&#xff08;Duet 2 WiFi、Duet 3 Mainboard、Duet 3 Mini&#xff09;——…...

高效视频素材全流程管理工具:Cobalt 开源解决方案详解

高效视频素材全流程管理工具&#xff1a;Cobalt 开源解决方案详解 【免费下载链接】cobalt save what you love 项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt Cobalt 是一款专为内容创作者设计的高效视频素材管理工具&#xff0c;支持从 30 主流平台下载视…...

基于Qt框架的PC端学生信息管理系统设计与实现

1. 为什么选择Qt开发学生信息管理系统&#xff1f; 第一次接触学生信息管理系统开发时&#xff0c;我尝试过用Java Swing、Python Tkinter等多种GUI框架&#xff0c;最后发现Qt才是真正的"生产力工具"。Qt的信号槽机制让界面交互变得异常简单&#xff0c;跨平台特性又…...

从原理到实战:AEC如何成为现代通信的“静音守护者”

1. 回声&#xff1a;从自然现象到通信难题 想象一下&#xff0c;你正在和远方的朋友视频通话&#xff0c;突然听到自己的声音像山谷回音一样不断重复。这种恼人的现象就是我们常说的"声学回声"。在自然界中&#xff0c;回声是声音遇到障碍物反射形成的物理现象&#…...

Swin2SR权限控制系统搭建:从小白到部署的完整实战教程

Swin2SR权限控制系统搭建&#xff1a;从小白到部署的完整实战教程 1. 引言&#xff1a;从个人工具到团队服务的转变 你刚刚体验了Swin2SR的强大&#xff0c;一张模糊的老照片&#xff0c;几秒钟就变得清晰锐利&#xff0c;那种感觉就像给图片做了一次“数字近视手术”。但很快…...

2026论文写作工具红黑榜:AI论文软件怎么选?实测才敢推!

红榜优先选千笔AI、ThouPen、豆包&#xff0c;适配国内学术规范&#xff0c;提升写作效率与合规性&#xff1b;黑榜需避开低质免费工具、无真实引用平台、过度依赖全文生成的工具。选择时建议按需求匹配度 - 数据可信度 - 成本承受力三维模型综合评估。一、红榜&#xff1a;10 …...

八位行波进位加法器设计全攻略:从理论到Quartus II实现

八位行波进位加法器设计全攻略&#xff1a;从理论到Quartus II实现 在数字电路设计中&#xff0c;加法器是最基础也是最重要的运算单元之一。无论是简单的计算器还是复杂的CPU&#xff0c;都离不开高效可靠的加法器设计。八位行波进位加法器作为入门级但实用性极强的设计案例&a…...