• 【Qt控件之QRadioButton】使用及技巧


    描述

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

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

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

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

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

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

    常用函数介绍

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

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

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

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

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

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

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

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

    void setChecked(bool checked)
    
    • 1

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

    bool isChecked() const
    
    • 1

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

    void setIcon(const QIcon& icon)
    
    • 1

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

    void setShortcut(const QKeySequence& shortcut)
    
    • 1

    设置单选按钮的快捷键。

    信号和槽
    void toggled(bool checked)
    
    • 1

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

    void clicked(bool checked = false)
    
    • 1

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

    void pressed()
    
    • 1

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

    void released()
    
    • 1

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

    void toggled(bool checked)
    
    • 1

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

    示例

    #include 
    #include 
    #include 
    #include 
    #include 
    
    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();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    效果

    radioBtn

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

  • 相关阅读:
    VC6写ALT COM详细步骤及VB6测试图示
    Qt 工程添加windows库文件
    kubernetes组件再认知
    redis分布式锁
    谈谈Redis分布式锁
    【Linux】守护进程
    面试被问了几百遍的 IoC 和 AOP ,还在傻傻搞不清楚?
    【scikit-learn基础】--『预处理』之 标准化
    【独立站运营】关于电子商务转化率,您还需要知道这些
    NNDL 实验六 卷积神经网络(3)基于ResNet18的图像分类
  • 原文地址:https://blog.csdn.net/MrHHHHHH/article/details/133829311