我用
提升法自定义一个控件
继承自
QTableWidget 然后在对应的类中添加一个方法addItem 就是添加一行
- # -*- coding: utf-8 -*-
- __mataclass__= type
- from PyQt4.QtCore import Qt
- from PyQt4.QtGui import QTableWidget, QTableWidgetItem, QAbstractItemView
- from PyQt4.QtCore import pyqtSignature
- class QCheckTable(QTableWidget):
- def __init__(self, parent = None):
- """
- Constructor
- """
- QTableWidget.__init__(self, parent)
- self.setColumnCount(2)
- self.setRowCount(0)
- self.setColumnWidth(0, 50)
- self.setEditTriggers(QAbstractItemView.NoEditTriggers)
- self.setSelectionMode(QAbstractItemView.MultiSelection)
- self.setSelectionBehavior(QAbstractItemView.SelectRows)
- self.setShowGrid(True)
- self.horizontalHeader().setVisible(False)
- self.verticalHeader().setVisible(False)
-
-
- def addItem(self, text):
- index = self.rowCount()
- self.insertRow(index)
- itemChk = QTableWidgetItem()
- itemChk.setCheckState(Qt.Unchecked)
- self.setItem(index, 0, itemChk)
- itemText = QTableWidgetItem(text)
- self.setItem(index, 1, itemText)
应该
比较好看懂,就是有两列,第一列是一个复选框,第二列显示addItem中text参数的信息
现在我在外部调用addItem这个方法,结果控件还是空的,
没有把列加进去
测试过addItem的代码是没有
问题的,即如果是对于QTableWidget的对象用里面的语句是可以添加进去并实时
显示出来的
不知道怎么回事,是不是少调用了刷新什么的方法,还是在提升法自定义控件的时候要注意什么