企业报刊网站建设情况总结,360免费wifi不能上网,wordpress建众创平台,医药网站素材博客主页#xff1a;Duck Bro 博客主页系列专栏#xff1a;Qt 专栏关注博主#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出#xff0c;及时修改感谢大家点赞#x1f44d;收藏⭐评论✍ Qt常用控件 | 按钮类控件Radio Button的使用及说明
文章编号#xff…
博客主页Duck Bro 博客主页系列专栏Qt 专栏关注博主后期持续更新系列文章如果有错误感谢请大家批评指出及时修改感谢大家点赞收藏⭐评论✍ Qt常用控件 | 按钮类控件Radio Button的使用及说明
文章编号Qt 学习笔记 / 22 文章目录 Qt常用控件 | 按钮类控件Radio Button的使用及说明一、QAbstractButton类1. 介绍2. QAbstractButton的子类 二、QRadioButton介绍1. 简介2. 常用属性及方法 三、QRadioButton的使用代码示例1. 使用代码编写选择性别2. 查看click, press, release, toggled的区别3. 单选框分组QButtonGroup的使用 一、QAbstractButton类
1. 介绍
QAbstractButton类是Qt中所有按钮类的基类它提供了一些基本的按钮功能和属性。它是一个抽象类不能直接实例化而是通过继承它来创建具体的按钮类。
通过继承QAbstractButton类我们可以创建不同类型的按钮如QPushButton、QCheckBox、QRadioButton等。这些具体的按钮类会继承并扩展QAbstractButton类的功能以实现不同类型按钮的特定功能。
2. QAbstractButton的子类
类名功能QPushButton提供了一个可以点击的按钮。QRadioButton提供了一个单选按钮。QCheckBox提供了一个多选按钮。QToolButton提供了一个更小的按钮通常用于工具栏上。QCommandLinkButton提供了一个带有说明文本的按钮。QDialogButtonBox通常用于创建对话框并提供了一组预定义的按钮如Ok、Cancel、Apply等 二、QRadioButton介绍
1. 简介
在Qt中QRadioButton是一种可以在用户界面中选择某个选项的按钮控件。它被设计为一组互斥的按钮意味着在同一组中只能选择一个单选按钮。
QRadioButton继承自QAbstractButton因此它具有一些共同的功能例如设置文本、图标、状态等。它还可以发出clicked()信号以便在用户单击按钮时执行相应的操作。
要使用QRadioButton首先需要创建一个QRadioButton对象并设置其文本。然后可以将其添加到窗口或布局中以便在应用程序中显示。在设计应用程序时可以将多个QRadioButton对象放置在同一窗口中并将它们分为不同的组以实现单选按钮的功能。
通过使用QButtonGroup类可以将多个QRadioButton对象分为不同的组。这样在同一组中只能选择一个单选按钮。可以使用QButtonGroup的addButton()方法将QRadioButton对象添加到组中并使用setId()方法为每个按钮设置唯一的ID。
2. 常用属性及方法
QRadioButton具有以下属性 text(): 用于获取单选按钮的文本标签。 setText(const QString text): 用于设置单选按钮的文本标签。 isChecked(): 用于检查单选按钮是否被选中。 setChecked(bool checked): 用于设置单选按钮是否被选中。 setIcon(const QIcon icon): 设置单选按钮的图标。 setIconSize(const QSize size): 设置单选按钮的图标大小。 setAutoExclusive(bool exclusive): 设置单选按钮是否自动排除其他已选中的单选按钮。
QAbstractButton 中和 QRadioButton 关系较大的属性
属性说明checkable是否能选中checked是否已经被选中. checkable 是 checked 的前提条件.autoExclusive是否排他.选中⼀个按钮之后是否会取消其他按钮的选中.对于 QRadioButton 来说默认就是排他的 三、QRadioButton的使用代码示例
1. 使用代码编写选择性别 在界⾯上创建⼀个 label, 和 3 个 单选按钮RadioButton 修改 widget.cpp, 编辑三个QRadioButton的 slot 函数 设置默认选项让程序启动默认选中性别男 设置禁用的选项有两种方式一种不彻底一种彻底 运行程序就可以选择性别label 中的提示文字就会随之变化
文件代码
#ifndef WIDGET_H
#define WIDGET_H#include QWidgetQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slots:void on_radioButton_male_clicked();void on_radioButton_female_clicked();void on_radioButton_other_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H#include widget.h
#include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);//设置默认选项ui-radioButton_male-setChecked(true);ui-label-setText(请选择你的性别男);//设置禁用选项//ui-radioButton_other-setCheckable(false);ui-radioButton_other-setEnabled(false);
}Widget::~Widget()
{delete ui;
}void Widget::on_radioButton_male_clicked()
{ui-label-setText(请选择你的性别男);
}void Widget::on_radioButton_female_clicked()
{ui-label-setText(请选择你的性别女);
}void Widget::on_radioButton_other_clicked()
{ui-label-setText(请选择你的性别私密);
}2. 查看click, press, release, toggled的区别
在界⾯上创建四个单选按钮 给 1 创建 clicked 槽函数, 给 2 创建 pressed 槽函数, 给 3 创建 released 槽函数,给 4 创建 toggled 槽函数 运⾏程序, 可以看到 clicked 是⼀次⿏标按下⿏标释放触发的.pressed 是⿏标按下触发的.released 是⿏标释放触发的.toggled 是 checked 属性改变时触发的. 文件代码
#ifndef WIDGET_H
#define WIDGET_H#include QWidgetQT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slots:void on_radioButton_clicked();void on_radioButton_2_pressed();void on_radioButton_3_released();void on_radioButton_4_toggled(bool checked);private:Ui::Widget *ui;
};
#endif // WIDGET_H#include widget.h
#include ui_widget.h
#includeQDebug
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);}Widget::~Widget()
{delete ui;
}void Widget::on_radioButton_clicked()
{qDebug()clicked;
}void Widget::on_radioButton_2_pressed()
{qDebug()pressed;
}void Widget::on_radioButton_3_released()
{qDebug()released;
}void Widget::on_radioButton_4_toggled(bool checked)
{if(checked){qDebug()toggled checked true;}else{qDebug()toggled checked false;}
}
3. 单选框分组QButtonGroup的使用
在界⾯上创建 6 个单选框, ⽤来模拟肯德基点餐界⾯ 此时直接运⾏程序, 可以看到, 这六个 QRadioButton 之间都是排他的. 引⼊ QButtonGroup 进⾏分组.并编辑widget.cpp 运行结果就可以分开选择了
文件代码
#include widget.h
#include ui_widget.h
#includeQButtonGroup
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);//创建三个 QButtonGroupQButtonGroup* group1 new QButtonGroup(this);QButtonGroup* group2 new QButtonGroup(this);QButtonGroup* group3 new QButtonGroup(this);//两两⼀组, 放到三个 QButtonGroup 中.group1-addButton(ui-radioButton);group1-addButton(ui-radioButton_2);group2-addButton(ui-radioButton_3);group2-addButton(ui-radioButton_4);group3-addButton(ui-radioButton_5);group3-addButton(ui-radioButton_6);
}Widget::~Widget()
{delete ui;
}