【发布时间】:2011-04-27 09:59:59
【问题描述】:
这是我的第一个 QT 问题 - 我通常是 C# 程序员,所以请原谅我问了一个愚蠢的问题,我确信有一个非常简单的答案,但我似乎找不到:
我想将项目添加到列表中,暂时假设它们是字符串。
我有一个 QListView:UI->listView、一个 QStringList 和一个 QStringListModel:
stringList = new QStringList();
stringList->append("ABC");
stringList->append("123");
listModel = new QStringListModel(*stringList, NULL);
ui->listView->setModel(listModel);
stringList->append("xyz");
此示例编译并显示我的列表中的“ABC”和“123”,而不是“xyz”。为什么不?我需要以某种方式重新绘制 listView 吗?我是不是对 NULL 做错了什么?
谢谢。
【问题讨论】:
-
注意:不需要在堆上创建 QStringLists。容器是隐式共享的,通常通过 value/const ref 传递。
-
是的。在 Qt 中,您可以按值传递可能的实例(例如,QString、QList),而无需任何计算开销。 look here