Qt应用开发(基础篇)——按钮基类 QAbstractButton

一、前言

QAbstractButton 类,继承于QWidget,是Qt按钮小部件的抽象基类,提供按钮常用的功能。

QAbstractButton 按钮基类,它的子类(pushbutton 、checkbox 、toolbutton 等)处理用户操作,并指定按钮的绘制方式。QAbstractButton提供对按钮状态的支持,提供比如点击信号clicked 、按下信号pressed 、释放信号released 、复选状态isChecked 、是否可复选状态checkable等。

QAbstractButton 提供了按钮的文本text 属性和图标icon属性,如果按钮被禁用,将会显示一个禁用的外观。如果按钮的文本包含了一个"&"的符号,那么将创建一个快捷方式,比如:

cpp 复制代码
QPushButton *button = new QPushButton(tr("Ro&ck && Roll"), this);

当按下Alt+C的时候,焦点会回到该部件。如果要显示"&",请使用"&&"。设置快捷方式的另一种办法就是使用**setShortcut()**方法,这个方法主要用于部件没有文本的时候。

cpp 复制代码
button->setIcon(QIcon(":/images/print.png"));
button->setShortcut(tr("Alt+F7"));

二、QAbstractButton类

1、autoExclusive

该属性表示是否启用自动排他性,如果启用了自动排他性,在排他按钮组中,每次只能选中一个按钮,选中另一个按钮会自动取消选中先前选中的按钮。该属性除了QRadioButton,其他默认都是fasle。

cpp 复制代码
bool autoExclusive() const
void setAutoExclusive(bool)

**2、**autoRepeat

该属性表示是否启动自动触发。如果启用的话,当按下按钮的时候,pressed(), released()和clicked()会定期发出。默认为false。

cpp 复制代码
bool autoRepeat() const
void setAutoRepeat(bool)

3、autoRepeatDelay

该属性用于表示自动重复触发信号延迟。

cpp 复制代码
int autoRepeatDelay() const        
void setAutoRepeatDelay(int)       

4、autoRepeatInterval

该属性用于自动重复触发信号间隔。

cpp 复制代码
int autoRepeatInterval() const       
void setAutoRepeatInterval(int)      

5、checkable

该属性用于表示是否可以可以选中,QCheckBox复选框和QRadioButton单选框默认开启,其他按钮型的默认为关闭。

cpp 复制代码
bool isCheckable() const    
void setCheckable(bool)    

6、checked

该属性用于表示是否已经选中状态,选中得checkable打开才可以设置成功。

cpp 复制代码
bool isChecked() const    
void setChecked(bool)    

7、down

该属性用于让按钮按下,如果此属性为true,则按下按钮,不会发出pressed()和clicked()信号。默认为false。

cpp 复制代码
bool isDown() const    
void setDown(bool)    

8、icon

该属性用于保存按钮图标

cpp 复制代码
QIcon icon() const               
void setIcon(const QIcon &icon)   

9、iconSize

该属性用于保存按钮图标尺寸

cpp 复制代码
QSize iconSize() const                
void setIconSize(const QSize &size)   

10、shortcut

该属性用于表示按钮的快捷方式****QKeySequence****

cpp 复制代码
QKeySequence shortcut() const               
void setShortcut(const QKeySequence &key)   

11、text

该属性用于保存按钮文本,如果文本出现字符为"&",那么将自动创建快捷方式,Ctrl+下一个字符为快捷方式。

cpp 复制代码
QString text() const                
void setText(const QString &text)   

12、公共方法

1)group

返回此按钮所属的组,如果按钮不是任何QButtonGroup的成员,则此函数返回nullptr。

cpp 复制代码
QButtonGroup *group() const

13、信号

1)clicked

当按钮被激活时(即,当鼠标光标在按钮内时按下然后释放),当键入快捷键或调用click()或animateClick()时发出该信号。如果调用setDown()、setChecked()或toggle(),则不会发出此信号。

cpp 复制代码
void clicked(bool checked = false)

2)pressed

当按钮被按下的时候触发该信号。

cpp 复制代码
void pressed()

3)released

当按钮被按下之后被释放触发该信号。

cpp 复制代码
void released()

4)toggled

每当可检查按钮改变其状态时,都会发出此信号。如果按钮被选中,则Checked为true,如果按钮未被选中,则为false,适用于复选框、单选框按钮。

cpp 复制代码
void toggled(bool checked)
相关推荐
AI的探索之旅28 分钟前
97 个 OpenCV 实例(三十七):二维码识别,一张图四个码的陷阱
c++·opencv·计算机视觉
UIU1141 小时前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
raindayinrain1 小时前
c++设计模式
开发语言·c++·设计模式
旖旎夜光1 小时前
LeetCode 315: 算右侧小于当前元素的个数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
D e re k ZH1 小时前
保序回归:从 PAVA 到可并堆的单调约束优化
c++·算法·数据挖掘·回归·kotlin
青少儿编程课堂1 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛
octopus_c2 小时前
C++ 运算符重载详解 && 日期类的实现
开发语言·c++
青少儿编程课堂2 小时前
2026蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:堆排序与优先队列解析
c++·python·算法·bfs·信息学竞赛
j7~2 小时前
【C++ 面试笔记】(篇二):类与数据抽象 & STL 容器与算法
开发语言·c++·面试·stl容器和算法·类和数据抽象
Fuyo_11193 小时前
深入解析 C++ unordered_set 与 unordered_map 的核心特性与性能实战
开发语言·c++