首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQT在跨QWizardPage传递文件名时出错

PyQT在跨QWizardPage传递文件名时出错
EN

Stack Overflow用户
提问于 2018-07-10 20:16:35
回答 1查看 183关注 0票数 0

我试图让用户上传一个文件到一个QWizardPage上的应用程序,然后能够在另一个QWizardPage上重用相同的文件路径。但是,从我的代码

代码语言:javascript
复制
class ExecutePage(QtWidgets.QWizardPage):
    def __init__(self,*args,**kwargs):
        super().__init__()

    def initializePage(self):
        self.setTitle("Choose file to execute")
        self.setSubTitle("Please choose a file to execute")
        self.myTextBox = QtWidgets.QTextEdit(self)
        self.myTextBox.setGeometry(QtCore.QRect(100, 0, 350, 50))

        self.uploader = QtWidgets.QPushButton("upload",self)
        self.uploader.clicked.connect(self.get_file_name)

    def get_file_name(self):
        self.name = QtWidgets.QFileDialog.getOpenFileName(self.uploader,'Choose File to Run')[0]
        self.registerField("file_name",self.name,"currentText")

class ConclusionPage(QtWidgets.QWizardPage):
    def __init__(self,*args,**kwargs):
        super().__init__()

    def initializePage(self):
        self.setSubTitle(self.field("file_name"))

我搞错了

TypeError: registerField(self,str,QWidget,property: str = None,changedSignal: PYQT_SIGNAL = 0):参数2有意想不到的类型'str‘

是否有一种简单的方法可以将这个特定的字符串(self.name)转换为能够传递给向导中其他页面的QWidget (例如,在本例中,可以传递到结论页中的字幕字段)?

我已经看过这些文档,但无法理解,所以我希望能给出一些建议。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-10 20:29:09

您只能使用registerField()方法将qproperty传递给QWidget,在QFileDialog的情况下是不可能的,因为没有与选择相关联的q属性--而且getOpenFileName()是一个静态方法,获取对象是一个复杂的任务,有两个可能的解决方案,第一个是创建一个继承自QFileDialog的类,并具有与选择相关的qproperty,或者使用python的魔力传递值。最后一个是我将要使用的方法。

代码语言:javascript
复制
class ExecutePage(QtWidgets.QWizardPage):
    ...
    def get_file_name(self):
        name, _ = QtWidgets.QFileDialog.getOpenFileName(self.uploader,'Choose File to Run')
        self.wizard().file_name = name

class ConclusionPage(QtWidgets.QWizardPage):
    ...
    def initializePage(self):
        if hasattr(self.wizard(), 'file_name'):
            self.setSubTitle(self.wizard().file_name)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51273301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档