QTreeWidgetItem
的每个列项都填充了QComboBox
。
所以,我要说我创建了一个QTreeWidgetItem
:
tree=QtGui.QTreeWidget()
treeItem=QtGui.QTreeWidgetItem()
tree.addTopLevelItem(treeItem)
for i in range(10):
tree.setItemWidget(item, i, QtGui.QComboBox())
现在,如果我注释掉tree.addTopLevelItem(treeItem)
,则不会将任何组合框添加到QTreeWidgetItem中。换句话说,我必须向树中添加QTreeWidgetItem
才能将QComboBox
es添加到QTreeWidgetItem
。但是在创建QTreeWidgetItem
时,我不知道它是否会成为topLevelItem' or if it will be added to another topLevelItem as a child item using
。appendRow()`方法。
我应该继续将此项目作为topLevel分配给树,然后将其重新分配为孩子吗?我应该使用什么方法将topLevelItem作为另一个顶级项的子项?
答案 0 :(得分:1)
有很多方法可以用我最喜欢的方式在QTreeWidget
中创建数据,我使用QtGui.QTreeWidgetItem
的构造函数将根项目链接到使用QTreeWidget.addTopLevelItem
,并建议不要用它。
这样的例子;
myQTreeWidget = QtGui.QTreeWidget()
listsHeader = ['A', 'B', 'C']
myQTreeWidget.setHeaderItem(QtGui.QTreeWidgetItem(listsHeader))
dataQTreeWidgetItem = QtGui.QTreeWidgetItem(myQTreeWidget) # assgin QTreeWidget
for i in range(len(listsHeader)):
dataQTreeWidgetItem.setText(0, 'INDEX ' + str(i)) # Test text in column
myQTreeWidget.setItemWidget(dataQTreeWidgetItem, i, QtGui.QComboBox())
参考:http://pyqt.sourceforge.net/Docs/PyQt4/qtreewidgetitem.html#QTreeWidgetItem-3
EDITED 0:50 7/8/2014 在列表中添加标题。
此致