首页 > 业界动态 >

Qt中的Radio Button|独家

时间:2023-04-23 04:01:28

下面是一个简单的Qt Radio Button示例:


【资料图】

main.cpp

#include #include #include #include int main(int argc, char *argv[]){    QApplication a(argc, argv);    QWidget window;    QVBoxLayout *layout = new QVBoxLayout;    QRadioButton *radio1 = new QRadioButton(\"Option 1\");    QRadioButton *radio2 = new QRadioButton(\"Option 2\");    QRadioButton *radio3 = new QRadioButton(\"Option 3\");    layout->addWidget(radio1);    layout->addWidget(radio2);    layout->addWidget(radio3);    window.setLayout(layout);    window.show();    return a.exec();}

上述示例创建了一个窗口,并添加了三个Radio Button。运行该示例后,您将看到一个垂直布局,其中包含三个单选按钮“Option 1”,“Option 2”和“Option 3”。

请注意,这里我们使用QVBoxLayout来放置单选按钮。 QVBoxLayout是Qt中的一个布局类,它以垂直方向排列其子部件。

为了使这些单选按钮在逻辑上相关联,您需要将它们分组。可以使用QButtonGroup类来实现此目的。

例如,以下代码片段演示如何将三个单选按钮分组:

#include QButtonGroup *group = new QButtonGroup;group->addButton(radio1);group->addButton(radio2);group->addButton(radio3);

现在,当用户选择其中一个单选按钮时,其他单选按钮将被取消选中状态。您可以使用QButtonGroup的checkedId()方法来获取当前选中的单选按钮的ID。例如:

int selectedId = group->checkedId();

注意,如果没有任何单选按钮被选中,则checkedId()将返回-1。

这是一个更完整的示例,演示如何响应单选按钮的选中事件:

main.cpp

#include #include #include #include #include class MyWidget : public QWidget{public:    MyWidget(QWidget *parent = nullptr)        : QWidget(parent)    {        QVBoxLayout *layout = new QVBoxLayout;        QRadioButton *radio1 = new QRadioButton(\"Option 1\");        QRadioButton *radio2 = new QRadioButton(\"Option 2\");        QRadioButton *radio3 = new QRadioButton(\"Option 3\");        layout->addWidget(radio1);        layout->addWidget(radio2);        layout->addWidget(radio3);        m_group = new QButtonGroup;        m_group->addButton(radio1, 1);        m_group->addButton(radio2, 2);        m_group->addButton(radio3, 3);        connect(m_group, SIGNAL(buttonClicked(int)), this, SLOT(onButtonClicked(int)));        setLayout(layout);    }private slots:    void onButtonClicked(int id)    {        qDebug() << \"Button clicked:\" << id;    }private:    QButtonGroup *m_group;};int main(int argc, char *argv[]){    QApplication a(argc, argv);    MyWidget w;    w.show();    return a.exec();}

在上述示例中,我们创建了一个名为MyWidget的自定义QWidget类,该类包含三个单选按钮和一个QButtonGroup。我们还在构造函数中连接了buttonClicked()信号和onButtonClicked()槽。

当用户单击其中一个单选按钮时,buttonClicked()信号将被发射,并调用onButtonClicked()槽。在这里,我们将简单地打印所选的单选按钮的ID。

【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】

点击这里:

关键词:
x 广告
共同抗疫!郑州71岁党员志愿者每天爬6栋楼,提醒800多户居民做核酸

1月4日,郑州市新冠肺炎疫情防控指挥部办公室发布通告对部分区域实施管控措施。这是近半年来,新冠疫情第3次造访郑州。截止至1月10日24时,

安阳疫情最新消息|1月11日8时至12日8时安阳市新增本土确诊病例39例,累计123例

安阳疫情最新消息2022年1月11日8时至12日8时安阳市新型冠状病毒肺炎疫情最新情况1月11日8时至12日8时,全市新增本土确诊病例39例(汤阴县38

迅速高效!“河南抗疫互助通道”网上网下联动 获群众点赞

核酸检测24小时了还没查到结果,怎么办?现在高速下站口的管控政策到底是什么样子的?从洛阳老城区自驾走高速回郑州,收费站还劝返吗?苏八

信阳市疫情防控工作视频调度会召开 陈志伟出席会议

1月11日,市疫情防控工作视频调度会召开。代市长陈志伟出席会议并讲话。听取有关疫情防控重点工作和各县区(管理区、开发区)疫情防控工作

全国最新疫情消息:11日新增本土确诊病例166例 天津市今日启动第二轮全员核酸检测

11日0—24时,31个省(自治区、直辖市)和新疆生产建设兵团报告新增新冠肺炎本土确诊病例166例(河南118例,其中安阳市65例、许昌市41例、

1月12日天津市放假半天 开启第二轮全员核酸检测

1月12日,天津市人民政府发布重要通告,为做好天津市第二轮全员核酸检测工作,全市机关和企事业单位于1月12日(星期三)下午放假半天。广大

x 广告

Copyright ©  2015-2022 现在评测网版权所有  备案号:粤ICP备18023326号-5   联系邮箱:855 729 8@qq.com