Qt QListWidget setCurrentRow无效

Qt相关 2021-02-25 505次浏览
文章目录[隐藏]

前言

最近在项目中用到QListWidget,将一些数据日志用QListWidget显示。QListWidget数据是一定时间段内是实时刷新的(会一直 addItem), 每次刷新显示最新添加的数据。

 

添加数据并设置当前项(无效)

QString text = QString::fromLocal8Bit("TestRow%1").arg(ui->listWidget->count());
ui->listWidget->addItem(text);
ui->listWidget->setCurrentRow(ui->listWidget->count()); //此处设置无效,设置的项不选中,也不跳转到指定的项

 

添加数据并设置当前项(有效)

QString text = QString::fromLocal8Bit("TestRow%1").arg(ui->listWidget->count());
QListWidgetItem *item = new QListWidgetItem(text, ui->listWidget);
ui->listWidget->addItem(item);
ui->listWidget->setCurrentItem(item);

 

添加数据并设置当前项(有效另一种)

QString text = QString::fromLocal8Bit("TestRow%1").arg(ui->listWidget->count());
ui->listWidget->addItem(text);
ui->listWidget->item(ui->listWidget->count() - 1)->setSelected(true); // 设置选中
ui->listWidget->scrollToBottom(); // 关键 scrollTo/scrollToItem 也可以

 

效果截图

Qt QListWidget setCurrentRow无效

喜欢 (3)