如何解决如何使用 PyQt5 将 listWidget 的项目保存到文件列表文件
我想将 QListWidget 的项目保存到文件中。我添加的代码完成了工作,但我希望保存的文件是列表格式,即 ['item1'、'item2'、'item3' 等]
class MyMainWindow(QtWidgets.QMainWindow):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.save_file = 'save_file.txt'
self.read_from_file(self.save_file)
def write_to_file(self,file):
try:
list_widget = self.ui.listWidget
entries = '\n'.join(list_widget.item(ii).text() for ii in range(list_widget.count()))
with open(file,'w') as fout:
fout.write(entries)
except OSError as err:
print(f"file {file} Could not be written")
def read_from_file(self,file):
try:
list_widget = self.ui.listWidget
with open(file,'r') as fin:
entries = [e.strip() for e in fin.readlines()]
list_widget.insertItems(0,entries)
except OSError as err:
with open(file,'w'):
pass
def closeEvent(self,event):
should_save = QtWidgets.QMessageBox.question(self,"Save data","Should the data be saved?",defaultButton = QtWidgets.QMessageBox.Yes)
if should_save == QtWidgets.QMessageBox.Yes:
self.write_to_file(self.save_file)
return super().closeEvent(event)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = MyMainWindow()
MainWindow.show()
sys.exit(app.exec_())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。