Python 3.6+PyQt获取文件夹路径(非文件)的代码实现求助
解决PyQt选择文件夹并获取路径的问题
嘿,我刚好碰到过这个需求,给你分享下具体怎么用Python 3.6 + PyQt实现文件夹选择对话框,获取路径并打印~
核心思路
PyQt里的QFileDialog有专门针对文件夹选择的方法——getExistingDirectory(),这个方法就是用来打开文件夹选择对话框(而非文件选择框)的,完美匹配你的需求。
两种实现方式
1. 纯代码快速实现(无需Qt Designer)
如果想先做个测试示例,直接用代码创建界面和触发按钮即可:
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog import sys class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle("文件夹选择示例") self.setGeometry(100, 100, 300, 200) # 创建触发选择的按钮 self.select_btn = QPushButton("选择目标文件夹", self) self.select_btn.move(50, 50) self.select_btn.clicked.connect(self.pick_folder) def pick_folder(self): # 打开文件夹选择对话框 selected_folder = QFileDialog.getExistingDirectory( self, "请选择目标文件夹", # 对话框标题 "", # 初始打开路径,空则默认当前工作目录 # 强制只显示文件夹,不解析符号链接 QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks ) # 判断用户是否真的选择了文件夹(点击取消会返回空字符串) if selected_folder: print("你选中的文件夹路径:", selected_folder) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
2. 结合Qt Designer生成的表单
如果你已经用Qt Designer做好了界面,只需要给按钮绑定点击事件就行:
假设你的Qt Designer生成的ui文件叫your_form.ui,里面有个按钮的对象名叫pushButton_selectFolder,代码可以这么写:
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog from PyQt5.uic import loadUi import sys class MainWindow(QMainWindow): def __init__(self): super().__init__() # 加载Qt Designer的ui文件 loadUi("your_form.ui", self) # 绑定按钮点击事件到文件夹选择方法 self.pushButton_selectFolder.clicked.connect(self.pick_folder) def pick_folder(self): selected_folder = QFileDialog.getExistingDirectory( self, "请选择目标文件夹", "", QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks ) if selected_folder: print("你选中的文件夹路径:", selected_folder) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
关键提示
- 一定要判断
selected_folder是否为空:用户点击对话框的「取消」按钮时,方法会返回空字符串,直接打印的话会输出空内容,加个判断更严谨。 - 参数
QFileDialog.ShowDirsOnly是核心:它确保对话框只展示文件夹,不会出现文件选项,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

