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

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

发布时间:2023-12-12 15:33:55

在PyQt5中,我们可以使用QFileDialog类中的ShowDirsOnly方法来选择文件夹。这个方法可以让我们只能选择文件夹而不是文件。

下面是一个使用ShowDirsOnly方法的简单示例:

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

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

        self.initUI()

    def initUI(self):
        # 创建一个按钮,用于选择文件夹
        self.button = QPushButton("选择文件夹", self)
        self.button.clicked.connect(self.showDialog)

    def showDialog(self):
        # 创建一个文件选择对话框
        dialog = QFileDialog()
        dialog.setFileMode(QFileDialog.DirectoryOnly) # 设置只能选择文件夹
        dialog.setViewMode(QFileDialog.Detail) # 设置显示详细信息模式

        # 判断对话框是否执行了“打开”操作
        if dialog.exec_():
            # 获取所选文件夹的路径
            selected_directory = dialog.selectedFiles()[0]
            print(selected_directory)
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

在这个例子中,我们创建了一个简单的窗口,其中包含一个按钮。当我们点击按钮时,会弹出一个文件选择对话框,我们可以在对话框中选择一个文件夹。选择完成后,我们会在控制台输出所选的文件夹路径。

首先,我们导入了必要的模块,包括QApplication和QMainWindow。然后,我们创建了一个MainWindow类,继承自QMainWindow类,并重写了它的initUI()和showDialog()方法。

在initUI()方法中,我们创建了一个按钮,并将其连接到showDialog()方法以响应按钮的点击事件。

在showDialog()方法中,我们首先创建了一个QFileDialog对象。然后,我们使用setFileMode()方法将文件选择对话框设置为只能选择文件夹。我们还可以使用setViewMode()方法来设置对话框的显示模式。

最后,我们使用exec_()方法执行对话框,并判断是否执行了“打开”操作。如果是,我们使用selectedFiles()方法获取所选文件夹的路径,并将其打印到控制台。

注意:在PyQt5中,可以使用QFileDialog的静态方法getExistingDirectory()来实现类似的效果。