【Qt】根据界面所在显示器自适应调整ui大小

QT 自适应不同分辨率显示器 QT程序在不同电脑上运行时,遇到过因屏幕分辨率不同而导致界面太小或超出屏幕的问题。该篇记录一下解决方法。 阅读详情
AI摘要

文章介绍了如何使用Qt库中的QDesktopWidget和QScreen等工具获取屏幕信息,通过设置窗口和布局的大小策略,以及监听屏幕变化信号,来实现界面元素的自适应调整。这包括使用相对单位、根据DPI和屏幕比例调整大小,以及在屏幕变化时动态更新界面,以实现跨设备的响应式布局。

根据界面所在显示器自适应调整ui大小

获取屏幕信息

使用QDesktopWidget、QApplication::screens()等获取屏幕宽高、DPI等信息,详见上一篇概述。

设置界面元素的大小类型

我们需要将窗口、布局和控件的大小类型(size type)设置为相对单位,如:

  • 设置窗口的尺寸策略为Qt::SizePolicy::Expanding
  • 使用setBaseSize() + setSizeIncrement() 使窗口大小可根据屏幕比例增长
  • 使用 percentages 而不是像素为布局和控件设置大小
  • 使用em/pt等相对单位代替硬编码的像素值
    例如:
window->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); 
window->setBaseSize(500, 400);
window->setSizeIncrement(0.2, 0.2); // 窗口大小每次增加20%

layout->setContentsMargins(20%, 10%, 10%, 
QT屏幕自适应自动布局,拖动窗口自动变大变小(一) qtQStringList用法,后面写,先记录一下。 阅读详情

相关推荐

QT自适应窗口的一种实现

QT自身的自适应Layout运用起来,比较复杂。本文介绍了一种比较方便的方法来实现这适应窗口大小。

mainidea的专栏 3922

QT界面自适应

控件能跟随界面大小的变化实现字体、大小同比例的变化。

qq_45280097的博客 4646

Qt|开发程序如何自适应屏幕的简单方法

在早几年前,PC的显示屏幕几乎是1920*1080、1680*1050这两种规格,对于PC的window界面开发人员来说,页面也都是按照屏幕大小进行设计的。但是这种根据屏幕大小进行界面设计的方式已经受到了很大限制!近年来,显示屏的尺寸越来越多样化,PC开发的程序肯定不能再和之前一样了,那么该如何让PC开发的程序进行自适应屏幕呢?

糯诺诺米团 3618

从MFC到现代UI:界面自适应技术的演进与对比

本文探讨了从MFC到现代UI框架的界面自适应技术演进,重点分析了MFC的OnSize机制与现代Qt、WPF布局系统的对比。通过代码示例展示了传统手动布局与现代声明式布局的差异,为开发者提供了技术迁移策略和性能优化建议,帮助实现高效、灵活的界面自适应方案。

weixin_29009971的博客 381

别再手动调UI了!Qt窗口自适应终极方案:控件+文本+布局一键适配

本文深入探讨了Qt界面开发中窗口自适应布局的终极解决方案。针对传统手动调整UI的痛点,提出了一套集成控件、文本与布局的一键适配方案。核心在于重写resizeEvent事件,通过记录基准几何信息并动态计算缩放比例,实现控件与字体的智能同步调整,有效解决了多分辨率、高DPI屏幕下的界面适配难题,显著提升开发效率和用户体验。

weixin_29290947的博客 263

Qt实现窗口自适应分辨率大小

如果希望窗口大小始终保持与屏幕分辨率一致,可以将上述代码放在窗口的resizeEvent()函数中。这样,每当窗口大小发生变化时,都会自动调用resizeEvent()函数,从而实现窗口大小的自适应调整。在Qt中,可以通过一些简单的方法实现窗口大小随分辨率变化而自适应调整。获取到当前屏幕的分辨率后,可以根据需要调整窗口的大小。无论在何种分辨率下运行应用程序,窗口都能够正确地自动调整大小,提供更好的用户体验。除了调整窗口大小,还可以考虑将窗口设置为最大化,以充分利用屏幕空间。步骤2:调整窗口大小。

FuJavascript的博客 3654

(ZOS-API)Matlab控制ZEMAX软件调整光学系统某镜面位姿

所用软件的版本:MatlabR2022a, Zemax OpticStudio2024R1交互扩展功能,Zemax和可以同时打开,操作会比较方便在ZEMAX软件中,调整次镜位置通常有两种方法:1.在次镜前后各添加一个坐标间断面,并修改其“偏心X”“偏心Y”等参数来调整次镜的位姿;2.或者直接在次镜属性选项中设置相关数值。这两种方法对Zernike系数的采集结果无显著影响。

ecilifurt的博客 911

【2021末九软工边缘人保研】川大-中科院网络中心-华师夏令营+哈工大本-中科院网络中心-西交-厦大-中山-武大-北航预推免

2021末九软工边缘人保研记录一、写在前面二、个人背景 一、写在前面 2020年计算机保研可谓是诸神黄昏,卷的头破血流(指我等菜鸡)。疫情的原因,今年的夏令营和预推免基本全部改为线上,机试取消,能不能拿到offer基本完全取决于背景以及面试表现(当然也有个别头铁非要机试,甚至笔试的学校)。大佬们offer收割不停,我等边缘人只能看着一封封拒信发呆。 这种情况下,只有985 Rank5%以及211 Rank2%之前的大佬能够较为轻松地拿到面试入场券。贴一个上交电院夏令营要求你们感受一下: 预推免相比起夏令营

weixin_43222706的博客 4235

用Matlab和CVX搞定原子范数最小化:一个信号处理小白的避坑实践

本文详细介绍了如何使用Matlab和CVX实现原子范数最小化(Atomic norm minimization),特别适合信号处理初学者。从CVX安装配置、核心代码解析到实战中的典型问题与解决方案,提供了全面的避坑指南。通过具体案例展示了原子范数在频率估计和DOA估计中的优势,并给出性能优化策略和可视化方法。

weixin_28731231的博客 232

CircuitBreaker Resilience4J 介绍

在分布式环境中,我们的应用可能会面临着各种各样的可恢复的异常(比如超时,网络环境异常),此时我们可以利用不断重试的方式来从异常中恢复(Retry Pattern),使整个集群正常运行。然而,也有一些异常比较顽固,突然发生,无法预测,而且很难恢复,并且还会导致级联失败(举个例子,假设一个服务集群的负载非常高,如果这时候集群的一部分挂掉了,还占了很大一部分资源,整个集群都有可能遭殃)。如果我们这时还是不断进行重试的话,结果大多都是失败的。

zzhongcy的专栏 3539

Docker安装Nacos(详细教程)

Docker安装Nacos的步骤相对直接,但需要注意一些细节以确保安装成功。

weixin_73060959的博客 1404

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

本文深入探讨了使用Cadence psspxf工具进行分频器PSRR仿真时常见的三大技术陷阱,包括扰动信号参数设置、收敛性优化和后处理信号提取。通过详细的参数推荐和实战技巧,帮助工程师避免仿真误差,提升PSRR分析效率与准确性,特别适用于16分频器等数字-模拟混合电路设计。

weixin_29258297的博客 300

5、模糊风险评估

本文介绍了基于模糊逻辑的风险评估方法,探讨了如何在不确定、不完整信息环境下进行高效的风险分析。文章涵盖了模糊集合与隶属度函数的基本概念、模糊推理系统的流程,并结合犯罪风险、金融风险和医疗诊断等实际案例,展示了模糊风险评估的应用价值和技术细节。此外,还介绍了模糊贝叶斯网络、模糊综合评价等进阶工具与方法,为多领域风险管理提供了理论支持和实践指导。

mango的博客 179

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 【libevent】 反向代理
下一篇: 【GoLang】VS Code配置Golang开发调试环境
欧恩意
博客等级 码龄7年 677粉丝 138原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧恩意

如有帮助,感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值