所以我想在我的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"
显然这个函数会输出item的所有文本,为什么我不能在那里附加任何其他字符串呢?
答案 0 :(得分:3)
隐式共享可确保文本不会直接更改。您必须明确设置文本值:
QString txt = ui->history->item(i)->text().append(QTime::currentTime().toString());
ui->history->item(i)->setText (txt);