下面是一个简单的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开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】
点击这里:
标签: