Qt QListWidget setCurrentRow无效解决方法

 前言

最近在项目中用到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 也可以

 

效果截图

 

 

版权声明:
作者:小何
链接:https://ligo100.cn/houduanjishu/qt/110.html
来源:小何博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录