pyqt5利用QSettings保存qtablewidget
时间: 2024-05-02 17:03:25 浏览: 129
可以使用QSettings类将QTableWidget中的数据保存到本地。QSettings类提供了一种简单的方法来存储和恢复应用程序的设置。
以下是一个示例代码,可以将QTableWidget中的数据保存到本地:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QAction, QFileDialog
from PyQt5.QtCore import QSettings
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个表格
self.table = QTableWidget(self)
self.table.setColumnCount(3)
self.table.setRowCount(2)
# 设置表格内容
self.table.setItem(0, 0, QTableWidgetItem("1"))
self.table.setItem(0, 1, QTableWidgetItem("2"))
self.table.setItem(0, 2, QTableWidgetItem("3"))
self.table.setItem(1, 0, QTableWidgetItem("4"))
self.table.setItem(1, 1, QTableWidgetItem("5"))
self.table.setItem(1, 2, QTableWidgetItem("6"))
# 添加菜单栏
saveAction = QAction("Save", self)
saveAction.triggered.connect(self.saveTable)
loadAction = QAction("Load", self)
loadAction.triggered.connect(self.loadTable)
menubar = self.menuBar()
fileMenu = menubar.addMenu("File")
fileMenu.addAction(saveAction)
fileMenu.addAction(loadAction)
# 显示窗口
self.setGeometry(100, 100, 300, 300)
self.setWindowTitle("QTableWidget")
self.show()
# 保存表格数据
def saveTable(self):
# 打开文件对话框
filename, _ = QFileDialog.getSaveFileName(self, "Save File", "", "Ini Files (*.ini)")
if filename:
settings = QSettings(filename, QSettings.IniFormat)
settings.beginGroup("Table")
for i in range(self.table.rowCount()):
for j in range(self.table.columnCount()):
key = "row%dcol%d" % (i, j)
value = self.table.item(i, j).text()
settings.setValue(key, value)
settings.endGroup()
# 加载表格数据
def loadTable(self):
# 打开文件对话框
filename, _ = QFileDialog.getOpenFileName(self, "Open File", "", "Ini Files (*.ini)")
if filename:
settings = QSettings(filename, QSettings.IniFormat)
settings.beginGroup("Table")
for i in range(self.table.rowCount()):
for j in range(self.table.columnCount()):
key = "row%dcol%d" % (i, j)
value = settings.value(key, "")
self.table.setItem(i, j, QTableWidgetItem(value))
settings.endGroup()
if __name__ == "__main__":
app = QApplication(sys.argv)
mainWindow = MainWindow()
sys.exit(app.exec_())
```
在上面的代码中,我们创建了一个QTableWidget,并在其中添加了一些数据。然后,我们在菜单栏中添加了“Save”和“Load”两个操作,用于保存和加载表格数据。在保存表格数据时,我们使用QSettings类将数据保存到本地。在加载表格数据时,我们从本地文件中读取数据,并将其设置为表格中的项目。
阅读全文