PyQt4 Table Widget具有内置功能,可让您双击一个字段并进行编辑。 编辑完TableWidget之后,我需要将其保存并将其写回CSV文件。
当前代码:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys,csv,os
import random
import csv_library as csvlib
from PyQt4 import QtCore, QtGui, uic
EditMenu = uic.loadUiType("editmenu.ui")[0]
test=csvlib.csv2list("Food.csv")
NewMenu=[]
class WindowClass6(QtGui.QMainWindow, EditMenu):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.setWindowTitle("Menu")
self.Save.clicked.connect(self.Save2Menu)
self.Back.clicked.connect(self.Back2Login)
###
global ProductsTable
self.ProductsTable.setColumnCount(3)
self.ProductsTable.setRowCount(11)
self.ProductsTable.setHorizontalHeaderLabels(["Food Item", "Price", "Reward Points"])
for i in range (0,len(test)):
self.ProductsTable.setItem(i,0, QTableWidgetItem(str(test[i][0])))
self.ProductsTable.setItem(i,1, QTableWidgetItem(str(test[i][1])))
self.ProductsTable.setItem(i,2, QTableWidgetItem(str(test[i][2])))
def Save2Menu(self):
for j in range (0,len(test)):
Item1=self.ProductsTable.item(j,0, QTableWidgetItem)
print(Item1)
#Item2=self.ProductsTable.(j,1, QTableWidgetItem)
#Item3=self.ProductsTable.(j,2, QTableWidgetItem)
temp=[]
temp.append(Item1)
NewMenu.append(temp)
csvlib.list2csv(NewMenu,"Food2.csv")
def Back2Login(self):
MainMenu.show()
self.hide()
app = QtGui.QApplication(sys.argv)
EditMenu = WindowClass6(None)
EditMenu.show()
app.exec_()
运行代码时出现此错误:
回溯(最近通话最近一次):
Save2Menu中第31行的文件“ D:\ Project \ Menu Change.py”
Item1 = self.ProductsTable.item(j,0,QTableWidgetItem)
TypeError:QTableWidget.item(int,int):参数过多
任何人都可以浏览我的代码,并告诉我如何对这个问题进行排序,或者将我重定向到包含允许我从PyQt Table Widget写入csv的信息的另一个线程吗?