PYQT目录对话框打开两次

时间:2015-10-21 19:15:21

标签: python pyqt

我有一个通过按钮获取目录的功能。每当我想使用与其他函数一起检索的目录时,它就会再次显示打开的对话框。有办法解决这个问题。我创建了另一个函数来调用,希望能避免它,但仍然无法正常工作。这就是我在尝试......

appliciationDidFinishLaunching

1 个答案:

答案 0 :(得分:1)

您创建了一个显示对话框并返回用户选择的目录的函数。该功能的目的是向用户询问您不知道的内容,这里是文件夹的路径 一旦知道目录,就无需再次询问用户:不应多次调用此函数。

相反,您应存储用户提供给您的值。这是一个简单的例子:

class myWidget(QtGui.QWidget):
    def __init__(self,parent=None):
        ...
        self.directory=None
        self.button=QtGui.QPushButton("choose a folder")
        self.button.clicked.connect(self.select)

   def select(self):
       self.directory=QtGui.QFileDialog...

   def do_stuff_with_directory(self):
       print(self.directory)

一开始,self.directory为无,因为您不知道它应该是什么。当用户单击“选择文件夹”按钮时,self.directory被设置为他们的选择 由于它是MyWidget的属性,因此您可以在任何方法中使用它。在使用它之前,您应该检查它是否为None。

我看到你写了self.listDirPath.setText(directory) 因此,在任何函数中获取所选目录的另一种方法是:

directory=self.listDirPath.text()
相关问题