QT开发中文网

Qt中的Radio Button?实例

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

main.cpp

#include <QApplication>
#include <QWidget>
#include <QRadioButton>
#include <QVBoxLayout>

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>

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 <QApplication>
#include <QWidget>
#include <QRadioButton>
#include <QVBoxLayout>
#include <QButtonGroup>

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。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=509

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?