Qt——常用控件

前言:本篇文章,将分享Qt中常用的,具有代表性的一些控件。


一.按钮类控件

在前边的文章中我们也多次分享过PushButton按钮,但Qt中并非只提供这一种按钮。

在Qt中,QPushButton并非直接继承自QWidget,QAbstractButton才是它的父类,这个父类是一个抽象类,继承自QWidget。

还有另外几个按钮控件,和QPushButton一样,都继承自QAbstractButton,所以说,QAbstractButton包含了这些按钮控件的公共属性的方法


1.QPushButton

QPushButton的常见属性: 

text :按钮中的文本

icon :按钮中的图标

iconSize :按钮中图标的尺寸

shortCut :按钮对应的快捷键

autoRepeat :按钮是否会重复触发. 当鼠标左键按住不放时, 如果设为 true, 则会持续产生鼠标点击事件; 如果设为 false, 则必须释放鼠标, 再次按下鼠标时才能产生点击事件. (相当于枪战游戏中枪的连射还是单射)

autoRepeatDelay :重复触发的延时时间. 按住按钮多久之后, 开始重复触发.

autoRepeatInterval :重复触发的周期.


2.QRadioButton

QRadioButton 单选按钮. 可以让我们在多个选项中选择⼀个。

常见属性:

checkable :是否能选中。

checked :是否已经被选中. checkable 是 checked 的前提条件。

autoExclusive :是否排他. 选中⼀个按钮之后是否会取消其他按钮的选中. 对于QRadioButton 来说默认就是排他的。

所谓排他性,就是当存在多个单选按钮时,选中一个按钮之后,就会取消其他按钮的选中状态。

 

比如说当我选中春天时,再去选中夏天,就会自动取消春天的选中状态。

当然,上述单选按钮还存在一个问题,当同一个界面上出现多个单选按钮,我们希望这些按钮之间分为几个组合,组合与组合之间互不影响。此时因为整体的排他性,我们无法实现不同组的按钮之间不会存在排他性

为了解决这一问题,Qt设计了QButtonGroup类,可以针对按钮进行真正的分组。

 使用QButtonGroup类,需要包含同名头文件

// 创建两个个 QButtonGroup
 QButtonGroup* group1 = new QButtonGroup(this);
 QButtonGroup* group2 = new QButtonGroup(this);
 // 把 QRadioButton 两两⼀组, 放到两个个 QButtonGroup 中. 
 group1->addButton(ui->radioButton);
 group1->addButton(ui->radioButton_2);
 group2->addButton(ui->radioButton_3);
 group2->addButton(ui->radioButton_4);

分组之后,不同组的按钮之间就不会存在排他性了。


 3.QCheckBox

QCheckBox 表示复选按钮. 可以允许选中多个。

QCheckBox 最相关的属性也是 checkable checked,这里就不继续介绍。


二.显示类控件

1.QLabel

QLabel 可以用来显示文本和图片

常见属性:

text :QLabel 中的文本

textFormat :文本的格式.

  • Qt::PlainText :纯文本
  • Qt::RichText :富文本(支持 html 标签)
  • Qt::MarkdownText :markdown 格式,提供各种特殊符号,表示不同的样式/格式
  • Qt::AutoText :根据文本内容自动决定文本格式.

pixmapQLabel 内部包含的图片.

scaledContents :设为 true 表示内容自动拉伸填充 QLabel,设为 false 则不会自动拉伸

alignment :对齐方式. 可以设置水平和垂直方向如何对齐.

wordWrap :设为 true 内部的文本会自动换行. 设为 false 则内部文本不会自动换行.

indent :设置文本缩进. 水平和垂直方向都生效.

margin :内部文本和边框之间的边距. 不同于 indent, 但是是上下左右四个方向都同时有效. 而 indent 最多只是两个方向有效(具体哪两个方向有效取决于 alignment )

openExternalLinks :是否允许打开⼀个外部的链接. (当 QLabel 文本内容包含 url 的时候涉及到)

buddy :给 QLabel 关联⼀个 "伙伴" , 这样点击 QLabel 时就能激活对应的伙伴. 例如伙伴如果是⼀个 QCheckBox, 那么该 QCheckBox 就会被选中.


2.QLCDNumber

QLCDNumber是⼀个专门用来显示数字的控件. 类似于 "老式计算器" 的效果。

常见属性:

intValue :QLCDNumber 显示的数字值(int).
value :QLCDNumber 显示的数字值(double). 和 intValue 是联动的. 例如给 value 设为 1.5, intValue 的值就是 2. 另外, 设置 value 和 intValue 的方法名字为 display , 而不是 setValue 或 者 setIntValue .
digitCount :显示几位数字.
mode :数字显示形式.
  1. QLCDNumber::Dec :十进制模式,显示常规的十进制数字。
  2. QLCDNumber::Hex :十六进制模式,以十六进制格式显示数字。
  3. QLCDNumber::Bin :二进制模式,以二进制格式显示数字。
  4. QLCDNumber::Oct :八进制模式,以八进制格式显示数字。
segmentStyle :设置显示风格.
  1. QLCDNumber::Flat :平面的显示风格,数字呈现在⼀个平坦的表面上。
  2. QLCDNumber::Outline :轮廓显示风格,数字具有清晰的轮廓和阴影效果。
  3. QLCDNumber::Filled :填充显示风格,数字被填充颜色并与背景区分开。
smallDecimalPoint :设置比较小的小数点.

3.QProgressBar

使用QProgressBar 表示⼀个进度条

相关属性:

minimum :进度条最小值
maximum :进度条最大值
value :进度条当前值
alignment :文本在进度条中的对齐方式.
  • Qt::AlignLeft : 左对齐
  • Qt::AlignRight : 右对齐
  • Qt::AlignCenter : 居中对齐
  • Qt::AlignJustify : 两端对齐
textVisible :进度条的数字是否可见.
orientation :进度条的方向是水平还是垂直
invertAppearance :是否是朝反方向增长进度
textDirection :文本的朝向.
format :展示的数字格式.
  • %p :表示进度的百分比(0-100)
  • %v :表示进度的数值(0-100)
  • %m :表示剩余时间(以毫秒为单位)
  • %t :表示总时间(以毫秒为单位)

4.QCalendarWidget

QCalendarWidget 表示一个 "日历"。

相关属性:

selectDate :当前选中的日期

minimumDate :最小日期

maximumDate :最大日期

firstDayOfWeek :每周的第⼀天(也就是日历的第⼀列) 是周几.

gridVisible :是否显示

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

很楠不爱

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值