QFileDialog
是Qt库中的一个类,用于提供一个图形界面,让用户能够浏览文件系统并选择文件或目录。这个对话框是跨平台的,意味着它在Windows、macOS和Linux等操作系统上都能提供一致的用户体验。QFileDialog
经常被集成到Qt应用程序中,以便用户可以打开、保存或选择文件/文件夹。
基本用途
- 打开文件对话框:允许用户选择一个或多个文件来打开。
- 保存文件对话框:提供一个界面供用户指定文件名和位置来保存文件。
- 选择目录对话框:让用户选择一个目录而不是文件。
关键方法和属性
- getOpenFileName(parent, caption, directory, filter):弹出一个对话框让用户选择一个文件打开,返回选定的文件路径。
- getOpenFileNames(parent, caption, directory, filter):与上述相似,但允许选择多个文件,返回文件路径列表。
- getSaveFileName(parent, caption, directory, filter):弹出保存文件对话框,让用户指定文件保存位置和名称。
- getExistingDirectory(parent, caption, directory):用于选择已存在的目录。
参数说明
parent
:父窗口句柄,决定了对话框的父窗口。caption
:对话框的标题。directory
:对话框打开时默认显示的目录路径。filter
:文件过滤器字符串,用于限制显示的文件类型,如"Text files (*.txt);;Image files (*.png *.xpm *.jpg)"
。
示例代码
下面是一个简单的示例,展示如何在 PyQt5 应用程序中使用 QFileDialog
打开一个文件:
Python
1from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
2from PyQt5.QtWidgets import QFileDialog
3import sys
4
5class Example(QWidget):
6 def __init__(self):
7 super().__init__()
8
9 self.initUI()
10
11 def initUI(self):
12 self.setWindowTitle('QFileDialog Example')
13 layout = QVBoxLayout()
14
15 btn = QPushButton('Open File', self)
16 btn.clicked.connect(self.showDialog)
17 layout.addWidget(btn)
18
19 self.setLayout(layout)
20
21 def showDialog(self):
22 fname = QFileDialog.getOpenFileName(self, 'Open file', '', 'Text files (*.txt)')
23 if fname[0]:
24 print(fname[0]) # 打印选定的文件路径
25
26if __name__ == '__main__':
27 app = QApplication(sys.argv)
28 ex = Example()
29 ex.show()
30 sys.exit(app.exec_())
这段代码创建了一个包含一个按钮的简单窗口,点击按钮后会弹出一个文件选择对话框,用户选择文件后,程序会打印出所选文件的路径。