【Qt】显示类控件:QLabel、QLCDNumber、QProgressBar、QCalendarWidget

发布于:2024-12-19 ⋅ 阅读:(10) ⋅ 点赞:(0)

目录

QLabel

QFrame

例子:

textFormat

 pixmap、scaledContents

alignment

wordWrap、indent、margin

 buddy

 QLCDNumber

例子:

QTimer

QProgressBar

例子:

QCalendarWidget

例子:


QLabel

标签控件,用来显示文本和图片。

QLabel的核心属性:

text:标签中的文本。

textFormat:文本的格式。

setTextFormat的形参是枚举类型,有下面几种取值:

Qt::PlainText(纯文本)

Qt::RichText(富文本,支持html标签)

Qt::MarkdownText(markdown格式)

Qt::AutoText(根据文本内容自动决定文本格式)。

pixmap:QLabel内部的图片。QPixmap类对象,使用qrc文件中的资源路径初始化该对象。

scaledContents:scale:调节;(按比例或缩尺)绘制。标签中的图片内容自动拉伸填充整个标签。

alignment:alignment:对齐。用来设置标签中文本的对齐方式。

 枚举变量的取值:

wordWrap:wrap:换行。设置标签中的文本是否会自动换行,void setWordWrap(bool)

indent:设置标签中文本的缩进,水平和垂直方向都生效。

setIndent的形参是像素值。

margin:设置标签中的文本和边框之间的边距,四个方向都生效。

和indent一样设置边距方法参数也是像素。

openExternalLinks:是否能可以打开文本中涉及到的url。

buddy:给标签设置一个"伙伴",点击标签后对应的伙伴也会被激活。例如将QCheckBox作为一个伙伴,点击标签后,QCheckBox会被选中。

QFrame

从Qt Designer界面中选中一个label控件后,界面右侧就是继承关系,可以看到QLabel继承自QFrame、QWidget、QObject。

我们可以通过QFrame中frameshape改变标签的边框样式。

例子:

textFormat

 pixmap、scaledContents

现在要使我们导入到qrc文件中的图片铺满整个窗口,并且程序运行后,拖拽窗口大小同时该标签上的图片自动调节到与窗口一样的大小,且保持铺满窗口。

当我们进行拖拽窗口的时候,会触发一些系列resizeEvent,resizeEvent是QWidget类中的一个虚函数,当拖拽窗口时父类QWidget会调用虚函数resizeEvent,那么我们利用多态,通过在Widget子类中重写该虚函数resizeEvent。

alignment

默认的对齐方式是垂直居中和靠左,如下:

可以通过按位或多个枚举值来指定多个对齐方式,比如设置水平居中和靠底:

水平居中和垂直居中:

 靠顶和靠右:

wordWrap、indent、margin

仅仅只是设置了换行的:

设置缩进和文本与边框之间的边距后:

 buddy

有两个单选按钮,分别是两个标签的"伙伴",标签中的文本必须是&后跟一个键盘按键字符的形式,按下alt键+标签文本中&后跟的一个键盘按键字符,该标签对应的伙伴按钮就会被选中。

此时按下alt+V对应标签的伙伴按钮就被选中。

 QLCDNumber

专门显示数字的控件。

核心属性:

intValue:以整数型获取QLCDNumber中的数值。

value:以双精度浮点型获取QLCDNumber中的数值。

注意:设置QLCDNumber中的中的值是通过display方法设置的,display支持两种方法:1.使用字符串设置;2.使用整型设置。

digutCount:显示几位数字。

mode:数字显示形式。

segmentStyle:设置显示风格。

smalldecimalPoint:设置比较小的小数点。

例子:

设计一个从10到1的计时器(这里定时的描述必须是10s),间隔时间为1s。

QTimer

定时器类。通过QTimer中的start方法启动定时器,然后每隔一个周期触发一次QTimer::timeout信号,这个周期就是调用start方法启动定时器我们自己设定的时间。我们可以连接QTimer::timeout信号和一个槽函数。

 

QProgressBar

表示一个进度条。

核心属性:

minimum:进度条的最大值。

maximum:进度条的最小值。

value:进度条的当前值。

alignment:文本在进度条中的对齐方式。

textVisible:进度条的数字文本是否可见。

orientation:进度条的方向时水平还是垂直。

textDirection:文本的朝向。

format:进度条文本的类型。

更改进度条体的颜色:

通过Qt Creator右侧界面控件属性区更改QWidget类的styleSheet属性。

 上面这两种进入样式表更改界面都是可以的。

QProgressBarchunk:表示进度条中的进度块;QProgressBar::text表示进度条中的文本。

上面的其他属性都可以在Qt Creator右侧界面控件属性区进行设置。

例子:

搞一个进度条,100ms走1%。

QCalendarWidget

表示日历的控件。

核心属性:

selectDate:当前选中的日期。

日历控件重要的信号:

selecttionChanged():当选中的日期发生改变时发出。

activated(const QDate&):当双击一个有效的日期或按回车键时发出信号,形参是一个QDate类型,保存了选中的日期。

currentPageChanged(int,int):当年份月份改变时发出,形参是改变后的新年份月份。

例子:

选中日历中的某日期时,在标签中显示该日期。

注意:QDate中有一个toString()方法可以把日期转化为字符串形式。