QRadioButton: установка всех переключателей в группе в непроверенное состояние - PullRequest
1 голос
/ 10 августа 2010

У меня есть три переключателя, назовем их R1, R2 и R3. (R1 находится в проверенном наборе)

Моя проблема в том, что у меня есть метод с именем check(), который получает текущий переключатель с помощью:

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

В зависимости от того, какая радиокнопка активна, в дальнейшем вызывается соответствующий метод.

Однако проблема этого подхода заключается в том, что при загрузке формы проверяется R1. Затем, когда я вызываю check(), поскольку R1 уже проверяется при загрузке формы, он всегда возвращает R1 всегда.

Как бы это исправить? Я хочу, чтобы в зависимости от выбора пользователя вызывался соответствующий метод.

Итак, мне было интересно, возможно ли отключить переключатель при проверке формы?

1 Ответ

5 голосов
/ 11 августа 2010

надеюсь, это поможет вам, изначально все переключатели будут в непроверенном состоянии.

     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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...