描述

QRadioButton小部件提供了带有文本标签的单选按钮。

QRadioButton是一个选项按钮,可以被打开(选中)或关闭(未选中)。单选按钮通常向用户呈现“多个中的一个”选择。在一组单选按钮中,一次只能选择一个单选按钮;如果用户选择另一个按钮,则先前选择的按钮将关闭。

单选按钮默认情况下是autoExclusive的。如果启用了auto-exclusive,属于同一父部件的单选按钮将表现得像同一组互斥按钮。如果您需要为属于同一父部件的单选按钮创建多个互斥按钮组,请将它们放入一个QButtonGroup中。

每当一个按钮打开或关闭时,它就会发出toggled()信号。如果您希望在按钮状态改变时触发某个操作,请连接到该信号。使用isChecked()来查看特定按钮是否被选中。

与QPushButton一样,单选按钮显示文本,并可选择显示小图标。可以使用setIcon()设置图标。文本可以在构造函数中设置,也可以使用setText()设置。通过在文本中使用’&'字符前缀,可以指定快捷键。例如:

QRadioButton *button = new QRadioButton(“从&光标开始搜索”, this);
要显示实际的’&‘字符,请使用’&&'。

常用函数介绍

构造函数:
QRadioButton(QWidget* parent = nullptr)

默认构造函数,创建一个没有父部件的单选按钮。

QRadioButton(const QString& text, QWidget* parent = nullptr)

使用指定的文本创建一个没有父部件的单选按钮。

QRadioButton(const QIcon& icon, const QString& text, QWidget* parent = nullptr)

使用指定的图标和文本创建一个没有父部件的单选按钮。

常用函数
void setText(const QString& text)

设置单选按钮显示的文本。

void setChecked(bool checked)

设置单选按钮的选中状态,true为选中,false为未选中。

bool isChecked() const

返回单选按钮的选中状态,如果选中则返回true,否则返回false。

void setIcon(const QIcon& icon)

设置单选按钮显示的图标。

void setShortcut(const QKeySequence& shortcut)

设置单选按钮的快捷键。

信号和槽
void toggled(bool checked)

当单选按钮选中状态发生改变时发出的信号,参数checked表示当前的选中状态。

void clicked(bool checked = false)

当单选按钮被点击时发出的信号,参数checked表示当前的选中状态。

void pressed()

当单选按钮被按下时发出的信号。

void released()

当单选按钮被释放时发出的信号。

void toggled(bool checked)

当单选按钮的选中状态发生改变时发出的信号,参数checked表示当前的选中状态。

示例

#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QRadioButton>
#include <QButtonGroup>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建主窗口
    QWidget window;
    window.setWindowTitle("RadioButton 示例");

    // 创建水平布局
    QHBoxLayout* layout = new QHBoxLayout(&window);

    // 创建按钮组
    QButtonGroup* buttonGroup = new QButtonGroup(&window);

    // 创建三个单选按钮
    QRadioButton* radioBtn1 = new QRadioButton("选项1");
    QRadioButton* radioBtn2 = new QRadioButton("选项2");
    QRadioButton* radioBtn3 = new QRadioButton("选项3");

    // 默认设置第一个单选按钮选中
    radioBtn1->setChecked(true);

    // 将单选按钮添加到按钮组中
    buttonGroup->addButton(radioBtn1);
    buttonGroup->addButton(radioBtn2);
    buttonGroup->addButton(radioBtn3);

    // 将按钮组的 exclusive 属性设置为 true,确保只能选中一个选项
    buttonGroup->setExclusive(true);

    // 将单选按钮添加到布局中
    layout->addWidget(radioBtn1);
    layout->addWidget(radioBtn2);
    layout->addWidget(radioBtn3);

    // 设置主窗口的布局
    window.setLayout(layout);

    // 显示主窗口
    window.show();

    return app.exec();
}

效果


radioBtn


上述示例代码创建了一个窗口,并使用QVBoxLayout作为布局管理器。
创建了三个QRadioButton单选按钮,并将它们添加到QButtonGroup按钮组中,确保只能选中一个选项。
最后,将单选按钮添加到布局中,并显示主窗口。