要在Qwizard指定所需的现场组Qradiobutton



我只有在选择了一个radiobutton并记住按下的内容时才需要转到向导中的下一页。

我的课程qwizardpage:

rb1 = QRadioButton('Button 1')
rb2 = QRadioButton('Button 2')
rb3 = QRadioButton('Button 3')
group = QButtonGroup()
group.addButton(rb1)
group.addButton(rb2)
group.addButton(rb3)
registerField('regFile*', group, group.buttonClicked)

错误消息:

TypeError: registerField(self, str, QWidget, property: str = None, changedSignal: PYQT_SIGNAL = 0): argument 2 has unexpected type 'QButtonGroup'

P.S。python3&PTQT5

让我们看一下此registerField()方法的文档。主要问题是它期望QWidget参数,但是QButtonGroup不是QWidget的子类,而是QObject的子类。您还没有提供property参数,对于此方法的文档中"已知"小部件列表中的小部件可能是必需的。

我觉得必须有更好的方法,但是作为解决方法,我创建了一个额外的QRadioButton,并通过registerField()使其成为必需的字段。但是 not 使它可见。单击任何可见的无线电布顿,调用隐藏无线电键的toggle()插槽,从而允许向导继续。

QRadioButton *completion_button = new QRadioButton();
registerField("completion*", completion_button);
connect(radio_button_1,SIGNAL(toggled(bool)),completion_button ,SLOT(toggle()));
connect(radio_button_2,SIGNAL(toggled(bool)),completion_button ,SLOT(toggle()));

隐藏的小部件不必是QRadioButton;可能是任何具有满足页面要求的插槽的QWidget。但是坚持使用相同的对象类型似乎更简单。

相关内容

  • 没有找到相关文章

最新更新