2011-06-06 53 views
0

我尝试在列表中添加窗口小部件的项目时,该按钮是clicked.I连接插槽和signal.Then我写的代码到被称为移动功能的另一个列表控件。我的尝试是添加项目列表中的小部件到另一个列表部件

ui-> topListWidget-> addItem(ui-> bottomListWidget-> currentItem());

但是它不工作。我该怎么做,或者我的代码有什么问题?

回答

1

//移动现有项目

topListWidget->的addItem(bottomListWidget-> takeItem(bottomListWidget-> currentRow()));

//添加复制的项目

topListWidget->的addItem(bottomListWidget-> CURRENTITEM() - >文本());

2

QListWidget拥有自己的项目。一件物品不能有两个父母。

如果你想一个项目从一个列表移动到另一个,然后使用QListWidget :: takeItem方法。如果你想在两个列表中同时显示项目,那么我建议你放弃QListWidget并迁移到QListView。

+0

什么是“一个项目不能有两个父母”是什么意思?如果发生了,会是什么?感谢您的回复。 – stedkka 2011-06-07 08:37:07

+0

C++没有垃圾收集器。有人必须显式删除堆中的对象。在这种情况下,“父母”意味着一个跟踪其“子女”(“拥有”他们)的对象,并在它自己被删除时将其删除。 Obvisouly这是坏的,如果父母双方试图删除一个孩子(PROGRAMM会在这种情况下崩溃),所以有一个以上的父母通常是由设计是不可能的。 – 2011-06-07 11:13:19

相关问题