Qt应用程序文字显示不全

       用Qt写了一个模拟购票系统,在自己电脑(Windows10,分辨率:1366*768)上运行界面正常。当在别人电脑(windows7、windows10,分辨率都为:1920*1080)上运行时就出现了一些文字被遮挡覆盖的现象。查阅了大量资料,发现没有具体讲述是什么原因的(可能查阅资料能力有限),于是自己分析了几天,终于有了结果,在这里给大家分享一下。

 

一、测试过程:我又找了分辨率1440*900的电脑运行也没有问题,把自己电脑的分辨率从800*600到1366*768挨个调了一遍也没有问题,至此,感觉是高分辨率有问题。于是在网上找到说Qt5.6以后支持高分辨率只需在代码中添加一句(在QApplication创建之前添加 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);),添加之后问题依然没有解决。下面用图说明具体问题:

(1)界面全部采用Qt Designer画的,就没什么代码可说的,下面是我的界面布局。界面说明:左侧显示数据部分为可拉伸,右边车票查询和车票退订以及所有车票都采用固定大小,这样在自己电脑上任意缩放都不会掩盖文字;

(2)下图为自己电脑以及其余我所测试的过的分辨率中1920*1080以下的界面,文字都显示正常,且和右边的编辑框有一定间距;

(3)下图为在分辨率1920*1080上测试的结果,出现了QLabel标签的文本被遮盖的问题(出发地和目的地的“地”显示不全),另“车票查询”和“车票退订”也出现文字下边显示不全的情况;

至此,以为1080是个分界点,是高分辨率的问题。虽然结果是高分辨率引起的,但是问题的答案与高分辨没有直接关系,下面来解决这个问题吧!

二、解决问题:解决这个问题很简单,因为QLabel的字体大小默认为磅,只需改为用像素作为单位然后固定大小就可以了。

(1)改为像素的方法:当然不能直接在Qt Designer的控件属性里改,我改字体大小的改法为设置样式表 QLabel { font-size:12px; },(该界面的QLabel标签使用的为9磅,大约为12像素)。

三、问题的原因:找到了解决办法,那到底是什么原因引起的呢?

(1)因为高分辨率的显示器的文字显示很小,设置了显示放大(即更改了DPI,DPI是指每英寸的像素),该设置在(以windows10为例)桌面-->鼠标右键-->显示设置-->显示-->更改文本、应用和其他项目的大小。当为100%时,显示正常,当为100%以上时,如果字体大小为磅则显示会放大(设置为像素则不会放大)。

(2)为什么文字会被放大,其余控件不会呢?因为该设置为设置DPI,当DPI增大时,每英寸的像素也增多了,

例如:假设DPI = 100%时,1英寸为100像素,一个9磅的字体 = 9/72英寸 = 9/72 * 100 = 12.5像素;

那么当DPI = 125%时,1英寸为125像素,一个9磅的字体 = 9/72英寸 = 9/72 * 125 = 15.625像素;  1 pt(磅) = 1/72 in(英寸)

此时1个字体已经比原来多占了几个像素了,而设置的QLabel标签的固定大小为像素,像素没有变化,文字比原来多了几个像素,当然会出现字体溢出边框的现象了,所以要设置固定大小,则最好设置控件字体大小为像素(px)值。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/66619.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prompt 用法大全!让 ChatGPT 更智能的六种策略(下)

上两篇介绍了 Pormpt 用法大全中前四种策略,本篇继续讲解后两种策略。‍‍‍‍‍ 点燃创作灵感:Prompt 实践指南揭秘!让 ChatGPT 更智能的六种策略(上) Prompt 用法大全!让 ChatGPT 更智能的六种策略&#…

普通人如何使用chat GPT,能做些什么?

想必最近几个月,大家都在社交平台上刷过“ChatGPT“这个词? 今日在此给大家一些参考: ChatGPT是什么? chat GPT主页界面 ChatGPT是OpenAI开发的一种自然语言处理工具。它基于Transformer架构,是一种经过多种语言和任务…

3秒复制任何人的嗓音!微软音频版DALL·E细思极恐,连环境背景音也能模仿

萧箫 发自 凹非寺量子位 | 公众号 QbitAI 只需3秒钟,一个根本没听过你说话的AI,就能完美模仿出你的声音。 例如这是你的一小句聊天语音: 这是AI根据它模仿你说话的音色: 是不是细思极恐? 这是微软最新AI成果——语音合…

细思极恐!使用 AI 控制你的浏览器

本期推荐开源项目目录: 1. 使用 AI 控制你的浏览器 2. Facebook力作:分割一切 3. 在 Mac 上运行 Stable Diffusion 4. ChatGPT 学术助手 5. 开源的 ChatGPT 桌面客户端 6. 微信公众号一键排版 01 使用 AI 控制你的浏览器 Taxy 是一个使用 GPT-4 来控制浏…

人类与智能ai(chatGPT)共存话题,它怎么回答?细思极恐!

1. 对地球最大的危害是谁? 作为 GPT-3.5 Turbo,我可以告诉你,地球最大的危害来自人类自身。人类的活动对地球环境产生了广泛而深远的负面影响。过度的工业化、大规模森林砍伐、过度捕捞、过度使用化石燃料以及其他不可持续的生产和消费模式&…

chatgpt赋能Python-pycharm粘贴把空格识别成行

PyCharm粘贴把空格识别成行:你需要知道的所有事情 作为一名有10年Python编程经验的工程师,我经常使用PyCharm,它是一款流行的 Python 集成环境 (IDE)。今天,我想分享一些有关 PyCharm 粘贴把空格识别成行的信息。 什么是PyCharm…

用「明道云+ChatGPT+Weaviate」挑战零代码1小时实现ChatPDF

ChatGPT流行起来之后,快速的出现了一批基于ChatGPT的工具应用,ChatPDF就是其中比较受欢迎的一款。它是一个可以让你与PDF文件进行对话的工具,既可以帮助你快速提取PDF文件中的信息,例如手册、论文、合同、书籍等;也可以…

HugNLP发布,集成多种NLP任务,可训ChatGPT类模型

HugNLP发布,集成多种NLP任务,可训ChatGPT类模型 作者:王嘉宁 HugNLP——全面统一的NLP框架开源了! 近日,华师大HugAILab团队研发了HugNLP框架,这是一个面向研究者和开发者的全面统一的NLP训练框架&#x…

考研英语 小作文模板

考研英语 作文模板 内容来自有道考神陈曲老师 公众号: 陈曲老师 小作文 有套路的信体 投诉信感谢信推荐信邀请信道歉信 相对来说需要自己发挥的 建议信通知 投诉信 例题 句式套路 1. complain about an electronic dictionary make a complaint about an electronic dic…

老师不能被计算机取代的英文作文,2019专八作文范文赏析:老师不能被取代

2019专八作文范文赏析:老师不能被取代 专八复习冲刺阶段,英语作文该怎么备考才能得高分呢?背些不同主题的范文,或许可以帮到你,下面是新东方在线英语专八频道整理的一系列英语专八作文范文。 Teachers Cannot Be Replaced Human …

计算机将会代替老师吗英语范文,2021年英语专四作文范文:计算机将取代老师...

2021英语专四考试时间已确定为6月19日,备考的同学们该开始着手准备了,英语专四作文打好基础可以多看看英语专四作文素材这样再复习英语专四作文的时候才能熟练,下面是为大家分享的:“2021年英语专四作文范文:计算机将取…

python 接入钉钉群告警

背景 1 环境 python3.7 2 邮件控制服务(由于公司用了zabbix(服务器基础设施),elk(业务报警),promethues alertManager(主要是k8s上面使用),grafana(部分pro…

钉钉自定义机器人接入

用钉钉机器人,可以做一些通知,比如说程序的预警,风控啊。 官方描述 看官网描述,很强大,支持文本,链接,Markdown。 添加完机器人可以用curl工具随便发点什么试试: curl ‘https://oap…

钉钉企业内部应用 - 获取考勤打卡结果

本文是根据钉钉官方文档归纳所出,最后有 PHP 测试成功的 demo。 概述 钉钉登录是基于 OAuth2.0 协议标准构建的钉钉 OAuth2.0 授权登录系统。 在进行钉钉 OAuth2.0 授权登录接入之前,需要先创建一个应用,并获得相应的 AgentId 和 AppSecret。…

通过Webhook接入钉钉群自定义机器人

在钉钉群中添加Webhook自定义机器人, 复制Webhook地址保存: https://oapi.dingtalk.com/robot/send?access_tokenxxxxxx 安全设置:选择加签方式,复制加签保存 #!/usr/bin/python # -*- coding: utf-8 -*- import requests imp…

注册之谷歌验证码

验证码的使用 前言一、验证码jar包二、谷歌验证码Kaptcha的使用1.在web.xml文件中配置用于生成验证码的Serclet程序2.在表单中使用img标签显示并使用3.获取服务器验证码和客户端进行比较4.切换验证码 总结 前言 在许多项目中都会涉及到登陆注册,而我们日常的注册除…

网站注册登录等短信验证码

现在随着时代的发展,许多网站的注册,或者登录都和手机号码关联在一起,这样也方便了我们记住账号,下面我就来说一下怎么用php发短信,这个是卸载(lavarel)框架的。 这里给大家介绍一个平台--云信…

输入手机号获取验证码的注册页面,说出测试过程

考察的点有两个,一个是对手机号格式和验证码格式的验证,一个是对验证码获取功能的验证。 基本原理:验证码1分钟内只能发一次,有效期10分钟。验证码是后台Java代码生成的,然后验证码生成时间和此验证码会保存在数据库的…

证券交易1-交易系统简介

证券交易过程,主要的过程是个人投资者或者机构投资者,按照股票的行情,报价下订单到交易所的,然后收到交易所回报的过程。本文主要介绍了这一交易过程中涉及到的系统。 证券交易业务流程图: 证券交易IT系统架构图&…

通达信交易系统接口是不是免费的?

通达信是一款第三方的交易系统,它可以跟我们常用的券商系统进行对接,所以通达信更像是一款接口型软件,但是为什么大家要做交易时,不直接使用券商交易系统,反而选择用通达信交易系统接口呢?这样难道不是还多…