我在Pyqt中制作了一个QTableWidget,并且遇到了一个恼人的打嗝。QTableWidgetItem和QWidget的PyQt子类
我需要在我的表中使用小部件的功能,所以即时使用setCellWidget将它们添加到表中。然而,小部件没有与QTableWidgetItem的do相同的方法(特别是关于表中的选择)。
我想知道是否有可能做一些东西的两个项目,所以我可以有两个方法,以及我如何将dd到桌子上。
喜欢的东西:
class TableItem(QtGui.QTableWidgetItem, QtGui.QWidget):
def __init__(self, parent=None):
super(TableItem, self).__init__(parent)
self.check = QtGui.QCheckBox()
self.label = QtGui.QLabel('Some Text')
self.h_box = QtGui.QHBoxLayout()
self.h_box.addWidget(self.check)
self.h_box.addWidget(self.label)
然后以某种方式添加到我的表作为TableWidgetItem,使其显示部件,也有选择方法可用。
这里的任何想法?
参考: setCellWidget:http://pyqt.sourceforge.net/Docs/PyQt4/qtablewidget.html#setCellWidget QWidget的:(不好找,我不能上传超过2个链接) 哪位可是没有一个表 QTableWidgetItem漂亮的方法:http://pyqt.sourceforge.net/Docs/PyQt4/qtablewidgetitem.html#type 与isSelected和的setSelected(方法不你可以使用table.cellWidget(row,column),然后使用你的小部件方法,但是使用setSelected和isSelected方法来创建一个小部件,你不能检查选择,我希望将这两个子集合在一起以允许
--Basically我需要知道如何让我的班“回归”正确的类型时,我把它添加到表setItem
我是否正确地说明白你希望QTableWidget中的项目本身是widgets,而不是通常用于生成QTableWidgetItems的常规QStrings,ints等等? – ballsatballsdotballs 2014-09-24 23:23:57
正确。 QTableWidget中有一个setCellWidget方法,您可以在表中使用小部件 - 这非常棒,效果很好。唯一的问题是你没有得到像QTableWidgetItem一样的选择状态等很好的方法。我更新问题链接到每个 – Alex 2014-09-25 00:05:34
我认为你的继承方法基本上是正确的。究竟哪种方法不适用于这种方法? – Fenikso 2014-09-25 08:45:09