我只有在选择了一个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
。但是坚持使用相同的对象类型似乎更简单。