2016-08-14 2 views
2

Так что я хотел бы добавить дополнительный текст к моему QListWidget список с кодом, как это:Добавление текста к существующему пункту QListWidget

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

Это не сработало.

Я qDebug GED все элементы списка с этим кодом:

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

Возможно, вы должны использовать 'addItem (" something ")' перед созданием 'append': -? (в случае, если вы его еще не использовали) – Skywrath

ответ

3

Неявное совместное использование гарантирует, что текст не будет напрямую изменен. Вы должны явно задать текстовое значение:

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

Спасибо большое, это сработало :) – PetukhovLive

0

text() возвращает текст по значению, а не по ссылке. Чтобы изменить текст, вам необходимо использовать setText.

Смежные вопросы