QTreeWidget中的Python父级

时间:2012-07-11 10:10:36

标签: python pyqt4 addchild qtreewidget

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

我的代码是:

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]

如果我将columncount设置为多于1,则显示为:

![在此输入图片说明] [3]

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

2 个答案:

答案 0 :(得分: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反之亦然。)

答案 1 :(得分:0)

我得到了答案。

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

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