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

PyQt5中使用QFileDialogShowDirsOnly()打开文件夹示例

发布时间:2023-12-12 15:38:04

QFileDialog是PyQt5中用于打开和保存文件的对话框类,QFileDialog提供了许多不同的选项来满足不同的需求。其中,QFileDialogShowDirsOnly()是QFileDialog的一个特殊选项,它仅允许用户选择文件夹而不是文件。

下面是一个使用QFileDialogShowDirsOnly()打开文件夹的示例代码:

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

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Open Directory Example')

        # 创建一个按钮来触发打开文件夹对话框
        self.button = QPushButton('Open Directory', self)
        self.button.clicked.connect(self.open_directory_dialog)
        self.setCentralWidget(self.button)

    def open_directory_dialog(self):
        # 创建一个QFileDialog对象并设置文件过滤器和选项
        dialog = QFileDialog()
        dialog.setFileMode(QFileDialog.DirectoryOnly)
        dialog.setOption(QFileDialog.ShowDirsOnly, True)

        if dialog.exec_() == QFileDialog.Accepted:
            # 获取用户选择的文件夹
            directory = dialog.selectedFiles()[0]
            print('Selected Directory:', directory)

if __name__ == '__main__':
    app = QApplication([])
    window = MyWindow()
    window.show()
    app.exec_()

在这个例子中,我们创建了一个窗口,并在窗口上放置了一个按钮。当按钮被点击时,会弹出一个文件对话框,允许用户选择文件夹。

open_directory_dialog方法中,我们首先创建了一个QFileDialog对象。然后,我们设置文件模式为QFileDialog.DirectoryOnly,这样用户只能选择文件夹而不是文件。接下来,我们使用setOption方法设置了QFileDialog.ShowDirsOnly选项为True,以确保仅显示文件夹。

最后,我们检查用户是选择了一个文件夹还是点击了"取消"按钮,如果用户选择了一个文件夹,我们使用selectedFiles方法来获取所选文件夹的路径,并打印出来。

在使用这个示例代码时,只需要运行即可看到窗口和按钮。当点击按钮时,会弹出一个打开文件夹的对话框,用户可以选择文件夹,并将选择的文件夹路径打印出来。

这就是使用QFileDialogShowDirsOnly()打开文件夹的示例代码。你可以根据自己的需求对代码进行修改和扩展。