我正在尝试使用PyQt5创建一个向导,并且正在尝试使它在用户在一页上输入的输入影响到用户在下一页上看到的内容。但是,当我尝试这样做时,我只会看到索引值而不是文本。创建一个列表,然后将索引值映射到列表中的适当位置以获取字符串似乎有点麻烦,所以有人知道PyQt是否具有更好的内置函数吗?class IntroductionPage(QtWidgets.QWizardPage): def __init__(self,*args,**kwargs): super().__init__() self.setTitle("Project Name") self.setSubTitle("Please select one of the available projects below") l = get_projects() comboBox = QtWidgets.QComboBox(self) [comboBox.addItem(i) for i in l] layout = QtWidgets.QGridLayout() layout.addWidget(comboBox) self.setLayout(layout) self.registerField("projectName",comboBox)class TaskPage(QtWidgets.QWizardPage): def __init__(self,*args,**kwargs): super().__init__() # currently returns an integer and not a string def initializePage(self): self.setTitle(self.field("projectName"))class My_Wizard(QtWidgets.QWizard): num_of_pages = 2 (intro,task) = range(num_of_pages) def __init__(self,*args,**kwargs): super(My_Wizard,self).__init__(*args,**kwargs) self.setPage(self.intro,IntroductionPage(self)) self.setPage(self.task,TaskPage(self)) self.setStartId(self.intro)
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
该registerField()
方法具有更多参数:
无效的QWizardPage :: registerField(const QString&name,QWidget * widget,const char * property = nullptr,const char * changedSignal = nullptr)
因此,解决方案是表明您要获取的currentText
属性QComboBox
:
self.registerField("projectName", comboBox, "currentText")
添加回答
举报
0/150
提交
取消