QRadioButton Class
QRadioButton小部件提供了一个带有文本标签的单选按钮
Header | #include < QRadioButton > |
---|---|
qmake | QT += widgets |
Inherits | QAbstractButton |
Inherited By |
详细说明
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()。
公共函数
- QRadioButton(const QString &text, QWidget *parent = nullptr)
- QRadioButton(QWidget *parent = nullptr)
- virtual ~QRadioButton()
重写的公共函数
- virtual QSize minimumSizeHint() const override
- virtual QSize sizeHint() const override
保护的函数
- void initStyleOption(QStyleOptionButton *option) const
重写的保护的函数
- virtual bool event(QEvent *e) override
- virtual bool hitButton(const QPoint &pos) const override
- virtual void mouseMoveEvent(QMouseEvent *e) override
- 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();
}