【问题标题】:PyQt5 File open DialogPyQt5 文件打开对话框
【发布时间】:2020-08-31 09:31:13
【问题描述】:

有没有办法用pyqt5文件对话框打开文件夹

我尝试使用引号,我想打开一个文件夹或带有子目录或子文件夹的目录

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QFileDialog, QTextEdit, QPushButton, QLabel, QVBoxLayout


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(800, 600)

        self.button1 = QPushButton('Open Project Folder')
        self.button1.clicked.connect(self.get_folder)


        self.labelImage = QLabel()
        self.textEditor = QTextEdit()

        layout = QVBoxLayout()
        layout.addWidget(self.button1)
        layout.addWidget(self.labelImage)
        layout.addWidget(self.button2)
        layout.addWidget(self.textEditor)
        self.setLayout(layout)

    def get_folder(self):
        file_name, _ = QFileDialog.getOpenFileName(
            self, 'Project Data', r"", "")
        print(file_name)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())```

【问题讨论】:

  • 你应该使用getExistingDirectory()
  • 但是我实际上是 pyqt5 的新手,所以请简短地帮助我

标签: python pyqt5


【解决方案1】:

QFileDialog有多种static functions可用,如果需要打开目录,不要使用getOpenFileName,而是getExistingDirectory()

从文档中可以看出,参数略有不同,并且 如果你从 python shell 运行help(QtWidgets.QFileDialog.getExistingDirectory),你会看到完整的参数签名和用 python 语法编写的返回值。

getExistingDirectory(parent: QWidget = None, caption: str = '', directory: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = QFileDialog.ShowDirsOnly) -> str

最后一部分( -> str)表示只有一个返回值,即所选目录的字符串(如果用户取消对话框则为空)。 p>

    def get_folder(self):
        folder = QFileDialog.getExistingDirectory(
            self, 'Project Data', '')
        if folder:
            print(folder)

我建议您始终研究您正在使用的每个类的文档,并使用官方文档;即使它是面向 C++ 的,这些函数在 PyQt 上也具有相同的名称,并且它们的参数/返回值在 99% 的情况下是相同的。每当您有疑问或遇到有关错误参数或返回数据的问题时,您可以查看official PyQt 文档或在python shell 中使用help(class.function)

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 2010-12-11
    • 1970-01-01
    • 2013-05-12
    • 2022-01-23
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多