2016-08-14 108 views
2

现有的项目,所以我想一个额外的文本与代码添加到我的QListWidget名单如下:将文本添加到QListWidget

for (int i = 0; i < ui->history->count(); i++) 
{ 
    ui->history->item(i)->text().append(QTime::currentTime().toString()); 
} 

这并没有奏效。

qDebug盖德与此代码所有列表项:

qDebug() << "item(" << i << ")->text() : " << ui->history->item(i)->text(); 

后,我收到这样的输出:

item(0)->text() : "http://www.google.ru/?gfe_rd=cr&ei=cT6wV9PDKI-8zAXjlaCIDw" 
item(1)->text() : "https://news.google.ru/nwshp?hl=ru&tab=wn" 
item(2)->text() : "https://news.google.ru/news?pz=1&hl=ru&tab=nn" 
item(3)->text() : "https://news.google.ru/news?pz=1&hl=ru&tab=nn" 

显然,这种功能输出项目的所有文字,为什么我不能在那里追加任何其他的字符串?

+0

也许你在制作append之前必须使用'addItem(“something”)': - ? (如果你没有使用它) – Skywrath

回答

3

隐式共享确保文本不会被直接更改。你必须明确地设置文本值:

QString txt = ui->history->item(i)->text().append(QTime::currentTime().toString()); 
ui->history->item(i)->setText (txt); 
+0

非常感谢,它工作:) – PetukhovLive

0

text()收益率的值的文本,而不是参考。您需要使用setText来修改文本。