基本Widgets(06):【类】QRadioButton[官翻]

本文详细介绍了Qt框架中的QRadioButton类,该类用于创建单选按钮,提供选中或未选中的状态。QRadioButton在一组中默认具有自动排他性,一次只能选中一个。文章通过代码示例展示了如何设置文本、图标、快捷键以及如何响应按钮状态变化的信号。此外,还涵盖了重写的一些关键函数,如minimumSizeHint()和sizeHint()等。
摘要由CSDN通过智能技术生成

QRadioButton Class

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

Header#include < QRadioButton >
qmakeQT += widgets
InheritsQAbstractButton
Inherited By

详细说明

img

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

默认情况下单选按钮是自动排他的。如果启用了自动排他,属于同一父部件的单选按钮的行为就像它们是同一排他按钮组的一部分一样。如果您需要为属于同一父部件的单选按钮创建多个独占按钮组,请将它们放入QButtonGroup中。

当一个按钮被打开或关闭时,它会发出toggled()信号。如果您想在按钮每次改变状态时触发一个操作,请连接到这个信号。使用isChecked()查看是否选择了特定的按钮。

与QPushButton一样,单选按钮显示文本,还可以显示一个小图标。这个图标是用setIcon()设置的。文本可以在构造函数中设置,也可以使用setText()。可通过在文本中首选字符前加一个&号来指定快捷键。例如:

QRadioButton *button = new QRadioButton("Search from the &cursor", this);

在这个例子中,快捷键是Alt+c。详情请参阅QShortcut文档。要显示实际的&符,请使用“&&”。

重要的继承:成员函数:text()、setText()、text()、setDown()、isDown()、autoRepeat()、group()、setAutoRepeat()、toggle();信号:pressed()、released()、clicked()和toggled()。

公共函数

  1. QRadioButton(const QString &text, QWidget *parent = nullptr)
  2. QRadioButton(QWidget *parent = nullptr)
  3. virtual ~QRadioButton()

重写的公共函数

  1. virtual QSize minimumSizeHint() const override
  2. virtual QSize sizeHint() const override

保护的函数

  1. void initStyleOption(QStyleOptionButton *option) const

重写的保护的函数

  1. virtual bool event(QEvent *e) override
  2. virtual bool hitButton(const QPoint &pos) const override
  3. virtual void mouseMoveEvent(QMouseEvent *e) override
  4. virtual void paintEvent(QPaintEvent *) override

实例

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QRadioButton cb1("QCheckBox 1");
    QRadioButton cb2("QCheckBox 2");
    QRadioButton cb3("QCheckBox 3");

    QCommonStyle cs;
    QIcon icon = cs.standardIcon ((QStyle::StandardPixmap) 0);
    cb1.setIcon (icon);
    cb2.setIcon (icon);
    cb3.setIcon (icon);

    cb2.setChecked (true);

    QObject::connect (&cb1,&QAbstractButton::toggled ,[&]{
        qDebug() <<cb1.text ()<< cb1.isChecked ();
    });
    QObject::connect (&cb2,&QAbstractButton::toggled ,[&]{
        qDebug() <<cb2.text ()<< cb2.isChecked ();
    });
    QObject::connect (&cb3,&QAbstractButton::toggled ,[&]{
        qDebug() <<cb3.text ()<< cb3.isChecked ();
    });

    QHBoxLayout mainLayout;
    mainLayout.addWidget (&cb1);
    mainLayout.addWidget (&cb2);
    mainLayout.addWidget (&cb3);

    w.setLayout (&mainLayout);

    w.show ();
    return a.exec();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值