为了账号安全,请及时绑定邮箱和手机立即绑定

pyqt向导registerfield作为字符串而不是整数

pyqt向导registerfield作为字符串而不是整数

杨魅力 2021-04-04 12:52:30
我正在尝试使用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")


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信