引言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家点击跳转到网站

在深入探索Qt框架的丰富控件库时,我们已从基础出发,初步领略了按钮类控件的多样性与灵活性。今天,我们的旅程将迈向一个更加视觉化与信息密集的领域——显示类控件。在这一站,我们将揭开QLabelQLCDNumberQProgressBar以及QCalendarWidget的神秘面纱,它们不仅以其独特的方式展示信息,还极大地丰富了应用程序的界面表现力和用户交互体验。

一、QLabel

QLabel作为文本和图标的通用显示容器,其灵活性和易用性使其成为界面设计中不可或缺的元素。无论是静态文本提示、动态内容更新,还是结合富文本格式展示复杂信息,QLabel都能轻松应对。

属性 说明
text QLabel中的文本
textFormat 文本的格式。可选项包括:
- Qt::PlainText:纯文本
- Qt::RichText:富文本(支持html标签)
- Qt::MarkdownText:markdown格式
- Qt::AutoText:根据文本内容自动决定文本格式
pixmap QLabel内部包含的图片
scaledContents 设为true表示内容自动拉伸填充QLabel;设为false则不会自动拉伸
alignment 对齐方式。可以设置水平和垂直方向如何对齐
wordWrap 设为true内部的文本会自动换行;设为false则内部文本不会自动换行
indent 设置文本缩进。水平和垂直方向都生效
margin 内部文本和边框之间的边距。不同于indent,但是是上下左右四个方向都同时有效。而indent最多只是两个方向有效(具体哪两个方向有效取决于alignment
openExternalLinks 是否允许打开一个外部的链接(当QLabel文本内容包含url的时候涉及到)
buddy QLabel关联一个"伙伴",这样点击QLabel时就能激活对应的伙伴。例如伙伴如果是一个QCheckBox,那么该QCheckBox就会被选中

二、QLCDNumber

接下来,QLCDNumber以其复古的LCD显示屏风格,为数字显示提供了一种别具一格的方式。它特别适用于需要直观展示数值变化,如计时器、计数器或监控系统等场景,为应用界面增添了一抹独特的科技感。

属性 说明
intValue QLCDNumber显示的数字值(int)。与value属性联动。例如,给value设为1.5,intValue的值就是2。
value QLCDNumber显示的数字值(double)。与intValue属性联动。
digitCount 显示几位数字。
mode 数字显示形式。
- QLCDNumber::Dec:十进制模式,显示常规的十进制数字。
- QLCDNumber::Hex:十六进制模式,以十六进制格式显示数字。
- QLCDNumber::Bin:二进制模式,以二进制格式显示数字。
- QLCDNumber::Oct:八进制模式,以八进制格式显示数字。注意,只有十进制模式才能显示小数点后的内容。
segmentStyle 设置显示风格。
- QLCDNumber::Flat:平面显示风格,数字呈现在一个平坦的表面上。
- QLCDNumber::Outline:轮廓显示风格,数字具有清晰的轮廓和阴影效果。
- QLCDNumber::Filled:填充显示风格,数字被填充颜色并与背景区分开。
smallDecimalPoint 设置比较小的小数点。

🚨🚨注意:在Qt中,设置QLCDNumber的值通常使用display()方法,而不是setValue()setIntValue()

三、QProgressBar

谈及进度反馈,QProgressBar无疑是首选。它以水平或垂直条形图的形式,直观展示任务的完成进度,让用户对操作状态一目了然。无论是文件下载、数据处理还是任务执行,QProgressBar都能有效提升用户体验,减少等待过程中的不确定感。

属性 说明
minimum 进度条最小值
maximum 进度条最大值
value 进度条当前值
alignment 文本在进度条中的对齐方式
- Qt::AlignLeft:左对齐
- Qt::AlignRight:右对齐
- Qt::AlignCenter:居中对齐
- Qt::AlignJustify:两端对齐(注意:在进度条中可能不适用)
textVisible 进度条的数字是否可见
orientation 进度条的方向是水平还是垂直
invertAppearance 是否是朝反方向增长进度
textDirection 文本的朝向(具体实现可能依赖于QProgressBar的样式和平台,通常不直接设置)
format 展示的数字格式
- %p:表示进度的百分比(0-100)
- %v:表示进度的数值(与value相同,但格式化为0-100)
- %m:表示剩余时间(以毫秒为单位,需自定义实现)
- %t:表示总时间(以毫秒为单位,需自定义实现)

四、QCalendarWidget

QCalendarWidget则为我们打开了一扇通往日期和时间管理的窗口。这个日历控件不仅允许用户浏览、选择日期,还支持自定义样式和事件提醒等功能,是日程管理等应用的得力助手。

属性 说明
selectDate 当前选中的日期
minimumDate 最小日期
maximumDate 最大日期
firstDayOfWeek 每周的第一天(也就是日历的第一列)是周几
gridVisible 是否显示表格的边框
selectionMode 是否允许选择日期
navigationBarVisible 日历上方标题是否显示
horizontalHeaderFormat 日历上方标题显示的日期格式
verticalHeaderFormat 日历第一列显示的内容格式
dateEditEnabled 是否允许日期被编辑

⭕重要信号

信号名称 说明 参数
selectionChanged(const QDate&) 当选中的日期发生改变时发出 const QDate&:改变后的日期
activated(const QDate&) 当双击一个有效的日期或者按下回车键时发出 const QDate&:被激活(选中)的日期
currentPageChanged(int, int) 当年份或月份改变时发出 int:改变后的年份
int:改变后的月份(注意:月份通常是从1开始的,即1代表1月)
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐