0

我正在研究 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_nameQTreeWidget中我父母的名字。EX:'ACO_233' 但输出是:

![在此处输入图像描述][2]

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

![在此处输入图像描述][3]

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

4

2 回答 2

1

检查文档

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

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

QTreeWidgetItem需要一个字符串列表来填充列。当您这样做时QTreeWidgetItem(str(parent_name)),它将字符串解释为字符parent_name列表(这就是字符串)并将每个字符放在一列中。相反,您应该这样做:

valestimate = QTreeWidgetItem([parent_name])

这将为您提供一个列项,其中parent_name包含该列中的值。

(顺便说一句,str()orunicode()不是转换事物的好方法。您应该使用.encode转换unicodestr.decode反之亦然。)

于 2012-07-11T10:40:23.407 回答
0

我得到了答案。

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

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

于 2012-07-11T10:50:17.600 回答