1、QFileDialog----构造函数:通过构造函数直接构造文件选择对话框需要分开,通过各个方法单独设置某些操作。(例如设置文件模式、设置名称过滤器)
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QFileDialog----构造函数的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
btn = QPushButton(self)
btn.move(200, 200)
btn.setText("选择文件")
def test():
fd = QFileDialog(self, "选择文件", "./", "All(*.*);; Images(*.jpg *.bmp);;python(*.py)")
fd.fileSelected.connect(lambda file: print(file))
print("xxx")
fd.show()
btn.clicked.connect(test)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Window()
window.resize(500, 500)
window.show()
sys.exit(app.exec_())
2、设置打开以及保存文件:通过接受模式设置:不设置模式的情况下默认就是打开文件。
def test():
fd = QFileDialog(self, "选择文件", "./", "All(*.*);; Images(*.jpg *.bmp);;python(*.py)")
fd.fileSelected.connect(lambda file: print(file))
fd.setAcceptMode(QFileDialog.AcceptSave)
print("xxx")
fd.show()
btn.clicked.connect(test)
保存文件过程中需要手动选择文件后缀名,如果不想选择后缀名,可以设置默认的后缀名。
def test():
fd = QFileDialog(self, "选择文件", "./", "All(*.*);; Images(*.jpg *.bmp);;python(*.py)")
fd.fileSelected.connect(lambda file: print(file))
fd.setAcceptMode(QFileDialog.AcceptSave)
fd.setDefaultSuffix("txt")
print("xxx")
fd.show()
设置文件模式:切换选择文件还是选择文件夹:
def test():
fd = QFileDialog(self, "选择文件", "./", "All(*.*);; Images(*.jpg *.bmp);;python(*.py)")
fd.fileSelected.connect(lambda file: print(file))
fd.setFileMode(QFileDialog.Directory)
print("xxx")
fd.show()
设置名称过滤器:(过滤图片、文本等)?
fd.setNameFilter("Img(*.jpg *.png)")
将每个字符串放在一个列表的元素中:,是列表元素的分割
#fd.setNameFilter("Img(*.jpg *.png)")
fd.setNameFilters(["All(*.*)", "Images(*.jpg *.bmp)", "python(*.py)"])
显示信息的详细程度:(显示详细信息在win10系统不灵光)
?设置指定角色的标签名:
?
?文件名、打开、取消等文本内容都可更改。
fd.setLabelText(QFileDialog.FileName, "顺哥的文件")
fd.setLabelText(QFileDialog.Accept, "顺哥的接受")
fd.setLabelText(QFileDialog.Reject, "顺哥的拒绝")
# 文件的类型,只在保存文件对话框,有个文件类型
QFileDialog.FileType
?打开对话框:
?
|