1. 程式人生 > 其它 >基本Widgets(06):【類】QRadioButton[官翻]

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

技術標籤:Qt

文章目錄

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();
}