将PyQt表小部件保存到CSV文件

时间:2019-02-22 20:27:18

标签: python python-3.x pyqt pyqt4

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的信息的另一个线程吗?

0 个答案:

没有答案