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

Python中使用QFileDialogShowDirsOnly()选择目录

发布时间:2023-12-12 15:35:39

在Python中,可以使用QFileDialog类中的getExistingDirectory()方法来选择目录。该方法可以显示一个文件对话框,只能选择目录,而不能选择文件。以下是一个例子:

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

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

        self.initUI()

    def initUI(self):
        self.setGeometry(100, 100, 300, 200)
        self.setWindowTitle('Directory Selector')

        self.selectBtn = QPushButton('Select Directory', self)
        self.selectBtn.setGeometry(50, 50, 200, 30)

        self.selectBtn.clicked.connect(self.selectDirectory)

    def selectDirectory(self):
        selected_dir = QFileDialog.getExistingDirectory(self, 'Select Directory', 'C:\\', options=QFileDialog.ShowDirsOnly)
        
        if selected_dir:
            print(f'Selected Directory: {selected_dir}')

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

在上面的代码中,我们创建了一个基于QMainWindow的窗口类MyWindow,其中包含一个按钮selectBtn,点击该按钮会打开一个文件对话框来选择目录。

selectDirectory方法中,我们使用QFileDialog.getExistingDirectory()方法来弹出一个文件对话框。通过options参数,我们可以指定对话框只显示目录。

在代码中,我们还打印了选择的目录路径。

在终端中运行该程序,点击"Select Directory"按钮后,会弹出一个文件对话框,只能选择目录。选定目录后,会在终端中打印出目录路径。

这就是使用QFileDialog选择目录的简单示例。