2016-08-14 123 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來修改文本。