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()来实现类似的效果。
