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中,您要通过为其分配另一个Item来对其进行初始化。但是QTreeWidgetItem复制作业不会复制所有内容:


  QTreeWidgetItem&QTreeWidgetItem :: operator =(const QTreeWidgetItem&
  其他)
  
  将其他人的数据和标志分配给该项目。请注意,type()和
  未复制treeWidget()。

关于c++ - 没有新的QTreeWidgetItem作为成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35070683/

10-12 19:18