Qt QTreeWidgetItem文本内容与小部件项目与数据

时间:2015-07-10 08:53:07

标签: c++ qt

构造QTreeWidgetItem后,您可以传递一个字符串列表,因此当您将其插入表(QTreeWidget)时,您将获得一行中列出的字符串。但是,从表的方法中,您还可以调用setItemWidget并将文本窗口小部件或任何类型的窗口小部件设置在该行中,但它似乎与具有字符串列表不兼容,因为窗口小部件是在字符串上绘制的。 QTreeWidgetItem还有一个setData方法,它设置一些可以被检索的数据,但对用户来说是不可见的。是否有一种切割方式正确使用所有三种数据存储方法?它们甚至兼容还是我必须只坚持一个?

1 个答案:

答案 0 :(得分:0)

QTreeWidgetItem的构造函数可以方便地立即列出所需的内容。

在单元格中插入自定义窗口小部件时,您需要将其autoFillBackground属性更改为true,以使其不透明。请参阅QTreewidget::setItemWidget说明:

  

给定小部件的autoFillBackground属性必须设置为true,   否则小部件的背景将是透明的,显示两者   模型数据和树小部件项。

QTreeWidgetItem::setData可以在已有项目时使用,并且您想要更改其中一项内容。

当然,您可以将这些方法中的任何一种结合起来,但很难说,在不知道您的用例的情况下哪种方法最好。还有一个提示:如果你只需要一个没有改变的数据的简单愚蠢表示,使用QTreeWidget就可以了。但是,如果您显示的数据可以更改,例如在代码的各个位置删除,添加,更改对象,带有自定义数据模型的QTreeView可能是更好的选择。