欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 【Qt】按钮类控件:QPushButton、QRadioButton、QCheckBox、ToolButton

【Qt】按钮类控件:QPushButton、QRadioButton、QCheckBox、ToolButton

2025/2/22 2:23:07 来源:https://blog.csdn.net/2401_84568462/article/details/144501188  浏览:    关键词:【Qt】按钮类控件:QPushButton、QRadioButton、QCheckBox、ToolButton

目录

QPushButton

例子:

QRadioButton

例子:

按钮的常见信号函数

单选按钮分组

例子:

QCheckButton

例子:

QToolButton


QWidget的常见属性及其功能对于它的派生类控件都是有效的(也就是Qt中的各种控件),包括下面的按钮控件、标签控件等。

对于按钮类控件,都是继承字自抽象类QAbtractPushButton, 而该抽象类继承自QWidget。

也就是说QWidget中的所有属性和方法QAbstractButton都可以使用,QPushButton和其他按钮类控件都可以使用QWidget和QAbstractButton中的属性和方法。

QPushButton

普通按钮。

QAbstractButton中与QPushButton关系较大的属性及其对应得方法:

text:按钮中的文本。

icon:按钮中的图标。

void setIcon(const QIcon& icon),QIcon是图标类,不需要挂在对象树上,直接在栈区开辟空间即可。

iconSize:按钮中图标的大小。

QSize iconSize(),返回按钮描述按钮图标大小的类对象。

shortcut:按钮对应得快捷键。

void setShortcut(const QKeySequence&),QKeySequence是一个按键序列,支持组合键。

1.字符串形式构造QKeySequenc类型对象,如:QKeySequence("ctrl+c"); QKeySequence("w")

2.Qt中提供的枚举常量进行构造,如:QKeySequence(Qt::Key_A)就是键盘上的A键QKeySequence(Qt::CTRL+Qt::Key_W)就是ctrl+w组合键。

建议使用Qt提供的枚举常量来构造QKeySequenc类型对象。字符串如果拼写错误编译器也不会报错,而使用枚举常量如果写错编译器是会报错的。

autoRepeat:当鼠标左键在按钮按住不放时,按钮是否会连续触发。

void setAutoRepeat(bool)

autoRepeatDaley:重复触发的延时时间,按住按钮多久后开始连续触发。

void setAutoRepeatDaley(int msec),时间单位:ms。

autoRepeatInterval:按钮连续触发的周期。

autoRepeat属性是autoRepeatDaley和autoRepeatInterval的前提。

例子:

创建四个按钮控制一个按钮,四个控制方向的按钮要有对应的图标,并且是关联键盘上的快捷键触发,被控制的按钮要有对应的图标。

QRadioButton

单选按钮。可让我我们在多个选项中选择一个

QAbstractButton中与QRadioButton关系较大的属性及其对应的方法:

作为集继承自QWidget和QAbstractButton得派生类,上面介绍的属性和方法对QRadioButton同样适用。

checkable:是否能选中。bool isCheckable()    void setCheckable(bool)

checked:是否已经被选中,bool isChecked(),checkable是checked的前提。

autoExclusive:是否排他。单选按钮默认就是排他的。

例子:

有三个单选按钮,只能选择一个性别性别分为:male,female,other,选择相应的按钮同时在标签控件上显示选择的性别,点击other按钮标签控件上不能显示选择的性别。

注意:如果一个按钮设为不能被选中,只是不能被选中而已,按钮还是可以被点击的,会触发对应得槽函数。如果点击后不想触发槽函数那就只能让按钮不能被点击,即是按钮变为不可用。 

例子中的做法是现在Widget类的构造函数中把other按钮设置为不可选中,然后在槽函数中判断,isChecked()是否为真,为真即被选中。我们也可以通过在构造函数中直接将other按钮设置为不可用:ui->radioButton_other->setEnabled(false)。

按钮的常见信号函数

QAbstractButton中由以下信号函数,在按钮可用的情况下:

clicked() :点击按钮+释放鼠标左键才能触发。

click(bool):点击按钮+释放鼠标左键并且该按钮此时是被选中触发。

pressed():按下按钮右键触发。

released():鼠标左键释放触发。

toggled:checked属性变化才触发,也就是如果按钮的由被选中到没被选中,或由没被选中到被选中。checkable属性会影响该信号触发。

单选按钮分组

例子:

创建六个单选按钮,用来模拟麦当劳点餐界面。

如果直接运行程序,由于单选按钮默认就是排他的,因此这六个按钮只有一个可以被选择。但是我们要求时汉堡、小食、饮品这三种中都选择一个,因此就要分别对汉堡、小食、饮品进行分组,每组内都具有排他性即可。

注意:要将创建QButtonGroup类对象挂在对象树上因此需要在堆上开辟,然后使用addButton方法向创建的按钮组对象中添加按钮。

QCheckButton

复选按钮。

QAbstractButton中与QCheckButton关系较大的属性:

checkable和checked。

例子:

有三个复选按钮,分别代表的是今天要做的事情,还有一个确认按钮,点击确认按钮后,将选中的事项内容显示出来。

QToolButton

QToolButton的大部分功能与QPushButton是一样的,但是QToolButton主要应用在工具栏,菜单等场景。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词