欢迎访问宙启技术站
智能推送

PyQt5中的ShowDirsOnly()方法选择文件夹实例

发布时间:2023-12-12 15:37:11

在PyQt5中,QFileDialog类提供了一种选择文件或文件夹的对话框。QFileDialog的静态方法getExistingDirectory()用于选择文件夹,而静态方法getOpenFileName()用于选择文件。

然而,如果我们只想选择文件夹,而不是文件,可以使用QFileDialog的showDirsOnly()方法。showDirsOnly()是一个布尔值参数,表示对话框只显示文件夹。默认情况下,showDirsOnly()为False,即对话框显示所有文件和文件夹。

接下来,我将为您提供一个PyQt5的示例,演示如何使用showDirsOnly()方法来选择文件夹。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QPushButton

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setWindowTitle("Choose Directory Example")

        btn = QPushButton("Choose Directory", self)
        btn.move(50, 50)
        btn.clicked.connect(self.chooseDirectory)

    def chooseDirectory(self):
        directory = QFileDialog.getExistingDirectory(self, "Choose Directory", "", QFileDialog.ShowDirsOnly)
        print(directory)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在这个例子中,我们创建了一个继承自QMainWindow的自定义窗口类MainWindow,并在其中添加一个按钮来选择文件夹。

当用户点击按钮时,我们调用了chooseDirectory方法。在这个方法中,我们使用QFileDialog的静态方法getExistingDirectory()来显示对话框,其中设置showDirsOnly参数为True,表示只显示文件夹。

在选择完文件夹后,我们通过print语句打印文件夹的路径。

要运行这个例子,确保您已经安装了PyQt5,并将上述代码保存在一个.py文件中。然后运行这个.py文件,会看到一个窗口和一个按钮。点击按钮后,会弹出一个选择文件夹的对话框,您可以选择一个文件夹。选择文件夹后,该文件夹的路径将被打印出来。

这个例子展示了如何使用PyQt5中的showDirsOnly()方法来选择文件夹。您可以根据自己的需要在自己的项目中应用该方法。