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

Python中使用PyQt5的QFileDialogShowDirsOnly()选择目录

发布时间:2023-12-12 15:34:16

在PyQt5中,可以使用QFileDialog中的QFileDialogShowDirsOnly()来选择目录。QFileDialog是一个对话框类,用于选择和保存文件和目录。

下面是一个使用QFileDialogShowDirsOnly()选择目录的示例:

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

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

        self.initUI()

    def initUI(self):
        self.setWindowTitle('Directory Selection')
        self.setGeometry(100, 100, 500, 500)

        # 创建一个菜单栏
        menubar = self.menuBar()
        
        # 创建一个文件菜单
        file_menu = menubar.addMenu('文件')
        
        # 添加一个选择目录的动作
        open_dir_action = QAction('选择目录', self)
        open_dir_action.triggered.connect(self.openDirDialog)
        file_menu.addAction(open_dir_action)

    def openDirDialog(self):
        dir_dialog = QFileDialog()
        dir_dialog.setFileMode(QFileDialog.Directory)
        dir_dialog.setOption(QFileDialog.ShowDirsOnly, True)

        if dir_dialog.exec_():
            selected_dir = dir_dialog.selectedFiles()
            print(selected_dir)

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

在上面的例子中,创建了一个继承自QMainWindow的MainWindow类。在initUI()方法中,创建了一个菜单栏和一个文件菜单,添加了一个选择目录的动作。当用户点击选择目录的动作时,会调用openDirDialog()方法。

在openDirDialog()方法中,首先创建了一个QFileDialog对象。然后,使用setFileMode()方法设置文件模式为目录。接下来,通过setOption()方法将ShowDirsOnly选项设置为True,以确保只显示目录而非文件。

最后,调用exec_()方法显示目录选择对话框。在用户选择了目录后,会调用selectedFiles()方法来获取用户选择的目录,并将其打印出来。

这是一个简单的使用QFileDialogShowDirsOnly()选择目录的例子。通过这个例子,你可以学习如何在Python中使用PyQt5来选择目录。