2012-07-11 67 views
0

我正在使用python插件。我使用QTreeWidget列出项目。 [在qtreewidget中列出] [1]这个链接帮了我很多。QTreeWidget中的Python父项

我的代码是:

valestimate=QTreeWidgetItem(str(parent_name)) 
for row in c.fetchall(): 
     strval=QTreeWidgetItem(unicode(row[0])) 
     valestimate.addChild(strval) 
     self.treeWidget.addTopLevelItem((valestimate)) 

PARENT_NAME是我在QTreeWidget父母的名字。 EX:'ACO_233' 但是输出是:

[此处输入图像的描述] [2]

如果设置了列数为一个以上的那么它被示出为:

! [3]

如何在Qtreewidget中列出完整的字符串作为父项? 下面这个链接[qtreewidget中的单个字符] [4] ..inserttoplevelitem以列表作为参数..但是,如果我想使任何项目作为父项目,我们不能将列表添加到qtreewidget类型项目。我该怎么做??

回答

1

检查documentation

QTreeWidgetItem.__init__ (self, QStringList strings, int type = TreeWidgetItem.Type) 

构建指定类型的树部件项目。该项目必须是 插入到树部件中。给定的字符串列表将被设置为 项目中每列的项目文本。

QTreeWidgetItem预计字符串列表填写栏。当你做QTreeWidgetItem(str(parent_name))时,它将字符串parent_name解释为字符列表(这是一个字符串)并将每个字符放入列中。相反,你应该做的:

valestimate = QTreeWidgetItem([parent_name]) 

这会给你parent_name单列项目作为该列中的值。

(顺便说一句,str()unicode()不是周围的事物转变的好方法,你应该使用.encodeunicode转换成str.decode用于反之亦然)。

0

我得到了答案。

 valestimate=QTreeWidgetItem() 
     valestimate.setText(0,str(parent_name)) 

不是直接将父名转换为qtreewidget类型,我们可以使用settext属性。