# coding=utf-8from PyQt4.QtGui import *from PyQt4.QtCore import *from Value import Valueimport sysclass MyTableWidget(QTableWidget): def __init__(self, row, column, parent=None): reload(sys) sys.setdefaultencoding('utf8') super(QTableWidget, self).__init__(row, column, parent) mycode = 'utf-8' code = QTextCodec.codecForName(mycode) QTextCodec.setCodecForLocale(code) QTextCodec.setCodecForTr(code) QTextCodec.setCodecForCStrings(code) self.setHorizontalHeaderLabels(['事件ID', '事件责任人', '开单人', '', '开单时间', '处理状态', '事件等级', '事件内容']) self.setColumnHidden(3, True) self.initData() # self.itemSelectionChanged.connect(self.handleItemClick) # model = QStandardItemModel(row, column) # self.setModel(model) self.setSelectionBehavior(QAbstractItemView.SelectRows) self.setEditTriggers(QAbstractItemView.NoEditTriggers) self.setSelectionMode(QAbstractItemView.SingleSelection) self.resizeColumnsToContents() def selectionChanged(self, column, parent): QTableView.selectionChanged(self, column, parent) self.selectRow(self.currentItem().row()) print self.currentRow(), # print self.cur for i in range(8): if i == 3: continue print str(self.item(self.currentRow(), i).text()), print # print self. def mouseDoubleClickEvent(self, event): QTableView.mouseDoubleClickEvent(self, event) pos = event.pos() item = self.indexAt(pos) if item: print "item clicked at ", item.row(), " ", item.column() self.removeRow(item.row()) def CellClicked(self, event): print 'j' QTableView.CellClicked(self, event) pos = event.pos() item = self.indexAt(pos) if item: print "item clicked at ", item.row() def handleItemClick(self): print 'k : ' def initData(self): a = Value() self.initDatas = a.data self.appendRows(a.datas) # for i in len(a.data): # self.row = self.rowCount() # self.insertRow(self.row) # newItem = QTableWidgetItem('jianpan') # self.setItem(self.row, 0, newItem) # newItem1 = QTableWidgetItem("10cm") # self.MyTable.setItem(self.row, 1, newItem1) # newItem2 = QTableWidgetItem("60g") # self.MyTable.setItem(self.row, 2, newItem2) # self.row = self.row + 1 def appendRow(self, row): rowCount = self.rowCount() print 'row :', row self.insertRow(rowCount) for index in range(len(row)): print index newItem = QTableWidgetItem(row[index]) self.setItem(rowCount, index, newItem) def appendRows(self, rowList): for i in rowList: self.appendRow(i)