【Python】QT(PySide2、PyQt5):列表数据保存到文件,文件数据加载到列表
前一篇是列表视图QListView、模型QStandardItemModel、自定义委托(继承于QStyledItemDelegate),内容包含列表中右键可插入/追加/上移/下移/删除/清空数据、自定义委托中包含主文本前显示行号、主文本后有输入框可输入备注。
参考:【Python】列表视图、模型、自定义委托
本文在自定义委托的基础上,将列表数据保存到txt文件中,并从txt文件中加载数据到列表。
大致界面:
- 一个日期选择器(QDateEdit):用于选择日期,并启用日历setCalendarPopup。默认为当天日期(PySide2.QtCore.QDate.currentDate()),
- 两个按钮(QPushButton):分别用于添加数据,数据保存到文件,
- 一个列表(QListView):用于展示数据。若双击修改后主文本和备注都为空则自动删除该行。
- 附:双击修改数据,修改后自动检查,若主文本和备注都为空,自动删除改行。
from PySide2.QtWidgets import (QApplication, QMainWindow, QDateEdit, QListView,QPushButton)
from PySide2.QtGui import QStandardItemModel
from PySide2.QtCore import QDate
from adelegate import myDelegateclass mywindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("Date and File")self.setGeometry(300, 80, 750, 550)# 日期选择器self.dateedit = QDateEdit(self)self.dateedit.setCalendarPopup(True)self.dateedit.setDate(QDate.currentDate())self.dateedit.dateChanged.connect(self.showdata)self.dateedit.setGeometry(50, 20, 150, 30)# 添加新项的按钮self.appendbtn = QPushButton("Append data", self)self.appendbtn.clicked.connect(self.appenditem)self.appendbtn.setGeome