Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QRadioButton:将组中的所有单选按钮设置为未选中状态_Qt_Pyqt - Fatal编程技术网

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

Qt QRadioButton:将组中的所有单选按钮设置为未选中状态,qt,pyqt,Qt,Pyqt,我有三个单选按钮,我们叫它们R1、R2和R3。(R1在选中的集合中) 我的问题是,我有一个名为check()的方法,它使用以下命令获取当前单选按钮: def check(self): if R1.isChecked(): # if R2.isChecked(): # if R3.isChecked(): # 根据哪个单选按钮处于活动状态,将进一步调用相应的方法 然而,这种方法的问题是,当表单加载时,会检查R1。然后,当我调用che

我有三个单选按钮,我们叫它们R1、R2和R3。(R1在选中的集合中)

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

def check(self):
    if R1.isChecked():
      # 
    if R2.isChecked():
      # 
    if R3.isChecked():
      #
根据哪个单选按钮处于活动状态,将进一步调用相应的方法

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

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


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

希望这能帮助您,最初所有单选按钮都将处于未检查状态

     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);

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

     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);

如果在加载表单时没有选中任何单选按钮,这会解决您的问题吗?默认情况下不选中QRadioButton,为了在创建它时检查它,您需要调用
setChecked(True)
,因此,我猜您所需要做的就是不设置任何选中的按钮。如果在加载表单时没有选中任何单选按钮,这会解决您的问题吗?默认情况下,QRadioButton未选中,为了在创建它时检查它,您需要调用
setChecked(True)
,所以我猜你所需要做的就是不要设置任何选中的按钮。