Qt QListWidget setCurrentRow无效解决方法

​  前言 最近在项目中用到QListWidget,将一些数据日志用QListWidget显示。QListWi […]

 前言

最近在项目中用到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无效解决方法
文章链接:https://blog.chiyuba.com/houduanjishu/qt/110.html
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,转载或引用请注明出处。
温馨提示:本文最后更新于 2021年6月13日,部分内容可能存在时效性,请注意甄别。

相关推荐

更多教程
Q_INVOKABLE使用及Qt反射讲解 Qt Q_INVOKABLE使用及Qt反射讲解

前言 这篇博文是我在搜索Q_INVOKA...

59 浏览
Qt 去掉最大最小框 Qt Qt 去掉最大最小框

实现方式 this->setWin...

14 浏览
QLabel启用复制功能 Qt QLabel启用复制功能

实现方式 ui->label_sh...

35 浏览

评论