QTreeWidgetItem 没有 new 作为成员

QTreeWidgetItem without new as member

本文关键字:成员 new 没有 QTreeWidgetItem      更新时间:2023-10-16
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 中,通过为其分配另一个QTreeWidgetItem来初始化Item。但是QTreeWidgetItem复制分配不会复制所有内容:

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

将其他人的数据和标志分配给此项目。请注意,type() 和 treeWidget() 不会被复制。