Qt Python提升法自定义控件的有关问题
Qt Python提升法自定义控件的问题
我用提升法自定义一个控件 继承自QTableWidget 然后在对应的类中添加一个方法addItem 就是添加一行
应该比较好看懂,就是有两列,第一列是一个复选框,第二列显示addItem中text参数的信息
现在我在外部调用addItem这个方法,结果控件还是空的,没有把列加进去
测试过addItem的代码是没有问题的,即如果是对于QTableWidget的对象用里面的语句是可以添加进去并实时显示出来的
不知道怎么回事,是不是少调用了刷新什么的方法,还是在提升法自定义控件的时候要注意什么
------解决方案--------------------
你自定义的addItem函数和QTableWidget的成员函数冲突了,改个名字试试?
我用提升法自定义一个控件 继承自QTableWidget 然后在对应的类中添加一个方法addItem 就是添加一行
- Python code
# -*- 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的对象用里面的语句是可以添加进去并实时显示出来的
不知道怎么回事,是不是少调用了刷新什么的方法,还是在提升法自定义控件的时候要注意什么
------解决方案--------------------
你自定义的addItem函数和QTableWidget的成员函数冲突了,改个名字试试?