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来选择目录。
