QRadioButton:将组中的所有单选按钮设置为未选中状态

发布于 2024-09-14 05:57:32 字数 450 浏览 1 评论 0原文

我有三个单选按钮,我们称它们为 R1、R2 和 R3。 (R1 位于检查集中)

我的问题是,我有一个名为 check() 的方法,它使用以下方法获取当前单选按钮:

def check(self):
    if R1.isChecked():
      # 
    if R2.isChecked():
      # 
    if R3.isChecked():
      #

根据哪个单选按钮处于活动状态,进一步调用适当的方法。

然而,这种方法的问题是,当加载表单时,会检查 R1。然后,当我调用 check() 时,由于在加载表单时已经检查了 R1,因此它始终返回 R1。

有什么方法可以解决这个问题?我希望根据用户的选择,调用适当的方法。

所以我想知道表单加载时是否可以不检查单选按钮?

I have three radio buttons, let's call them R1, R2 and R3. (R1 is in the checked set)

My problem is that I have a method called check() that gets the current radio button using:

def check(self):
    if R1.isChecked():
      # 
    if R2.isChecked():
      # 
    if R3.isChecked():
      #

Based on which radio button is active, the appropriate method is further called.

However the problem with this approach is that when the form loads up, R1 is checked. Then when I call the check(), since R1 is already checked when the form loads, it just returns R1 always.

What would be the way to fix this? I want that depending on the choice of the user, the appropriate method be called.

So I was wondering whether it is possible to have no radio button checked when the form loads up?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执笔绘流年 2024-09-21 05:57:32

希望这可以帮助您,最初所有单选按钮都将处于未选中状态。

     QGroupBox *groupBox = new QGroupBox(tr("Exclusive Radio Buttons"));
     QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
     QObject::connect(radio1,SIGNAL(clicked(bool)),this,SLOT(clickkedstate(bool)));
     radio1->setAutoExclusive(false);
     QRadioButton *radio2 = new QRadioButton(tr("R&adio button 2"));
     QObject::connect(radio2,SIGNAL(clicked(bool)),this,SLOT(clickkedstate(bool)));
     radio2->setAutoExclusive(false);
     QRadioButton *radio3 = new QRadioButton(tr("Ra&dio button 3"));
     radio3->setAutoExclusive(false);
     QObject::connect(radio3,SIGNAL(clicked(bool)),this,SLOT(clickkedstate(bool)));

     radio1->setChecked(false);
     radio2->setChecked(false);
     radio3->setChecked(false);


     QVBoxLayout *vbox = new QVBoxLayout;
     vbox->addWidget(radio1);
     vbox->addWidget(radio2);
     vbox->addWidget(radio3);
     vbox->addStretch(1);
     groupBox->setLayout(vbox);
     setLayout(vbox);

hope this could help you, initially all the radio buttons will be in unchecked state.

     QGroupBox *groupBox = new QGroupBox(tr("Exclusive Radio Buttons"));
     QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
     QObject::connect(radio1,SIGNAL(clicked(bool)),this,SLOT(clickkedstate(bool)));
     radio1->setAutoExclusive(false);
     QRadioButton *radio2 = new QRadioButton(tr("R&adio button 2"));
     QObject::connect(radio2,SIGNAL(clicked(bool)),this,SLOT(clickkedstate(bool)));
     radio2->setAutoExclusive(false);
     QRadioButton *radio3 = new QRadioButton(tr("Ra&dio button 3"));
     radio3->setAutoExclusive(false);
     QObject::connect(radio3,SIGNAL(clicked(bool)),this,SLOT(clickkedstate(bool)));

     radio1->setChecked(false);
     radio2->setChecked(false);
     radio3->setChecked(false);


     QVBoxLayout *vbox = new QVBoxLayout;
     vbox->addWidget(radio1);
     vbox->addWidget(radio2);
     vbox->addWidget(radio3);
     vbox->addStretch(1);
     groupBox->setLayout(vbox);
     setLayout(vbox);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文