• 7741阅读
  • 3回复

[提问]PyQt4下 提升法自定义QTableWidget添加行不显示 [复制链接]

上一主题 下一主题
离线zct1989511
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-04

我用提升法自定义一个控件 继承QTableWidget 然后在对应的类中添加一个方法addItem 就是添加一行
  1. # -*- coding: utf-8 -*-
  2. __mataclass__= type
  3. from PyQt4.QtCore import Qt
  4. from PyQt4.QtGui import QTableWidget, QTableWidgetItem, QAbstractItemView
  5. from PyQt4.QtCore import pyqtSignature
  6. class QCheckTable(QTableWidget):
  7.     def __init__(self, parent = None):
  8.         """
  9.         Constructor
  10.         """
  11.         QTableWidget.__init__(self, parent)
  12.         self.setColumnCount(2)
  13.         self.setRowCount(0)
  14.         self.setColumnWidth(0, 50)
  15.         self.setEditTriggers(QAbstractItemView.NoEditTriggers)
  16.         self.setSelectionMode(QAbstractItemView.MultiSelection)
  17.         self.setSelectionBehavior(QAbstractItemView.SelectRows)
  18.         self.setShowGrid(True)
  19.         self.horizontalHeader().setVisible(False)
  20.         self.verticalHeader().setVisible(False)
  21.         
  22.         
  23.     def addItem(self, text):
  24.         index = self.rowCount()
  25.         self.insertRow(index)
  26.         itemChk = QTableWidgetItem()
  27.         itemChk.setCheckState(Qt.Unchecked)
  28.         self.setItem(index, 0, itemChk)
  29.         itemText = QTableWidgetItem(text)
  30.         self.setItem(index, 1, itemText)





应该比较好看懂,就是有两列,第一列是一个复选框,第二列显示addItem中text参数的信息
现在我在外部调用addItem这个方法,结果控件还是空的,没有把列加进去
测试过addItem的代码是没有问题的,即如果是对于QTableWidget的对象用里面的语句是可以添加进去并实时显示出来的
不知道怎么回事,是不是少调用了刷新什么的方法,还是在提升法自定义控件的时候要注意什么
离线zct1989511

只看该作者 1楼 发表于: 2012-08-05
没有人吗 ?
离线XChinux

只看该作者 2楼 发表于: 2012-08-05
搞PyQt的人少吧。反正我没搞过,无法帮你解决啊。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线kimtaikee

只看该作者 3楼 发表于: 2012-08-23
你需要在addItem 函数中调用setRowCount 函数

快速回复
限100 字节
 
上一个 下一个