QTreeWidgetItem没有新成员

时间:2016-01-28 19:49:05

标签: c++ qt

class A
{
QTreeWidget Tree;
QTreeWidgetItem Item;
QTreeWidgetItem* pointer;
}

A::A()
{
...
Item = QTreeWidgetItem(&Tree); // Version 1
Item.setText(0, "Item");

pointer = new QTreeWidgetItem(&Tree); // Version 2
pointer->setText(0, "Pointer");
...
}

很抱歉没有提供完整的示例,我希望这已经足够了。

版本2工作正常,项目显示在GUI中的树中。版本1不起作用(该项目未显示)。为什么呢?

物体仍然存活(即未被破坏)。

1 个答案:

答案 0 :(得分:1)

在版本1中,您通过为其分配另一个Item来初始化QTreeWidgetItem。但QTreeWidgetItem副本分配并不复制所有内容:

  

QTreeWidgetItem& QTreeWidgetItem :: operator =(const QTreeWidgetItem&   其它)

     

为此项目分配其他数据和标志。注意type()和   treeWidget()不会被复制。