QTablewidget显示item很卡

cg4561232007 2016-08-01 09:11:16
非常简单的两个for循环显示100条(100*5)的数据就非常卡,就是用的setItem函数,为什么会这样?
...全文
2147 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾希鲁法特 2019-06-20
  • 打赏
  • 举报
回复 2
引用 8 楼 TC_COM 的回复:
主要的原因是 你可能使用了

tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

更新数据的时候会去算列表项的宽度、高度, 现象是数据愈多越慢~

解决方案是 更新前设置成 QHeaderView::Fixed 更新完成后设置成 QHeaderView::ResizeToContents


谢谢大佬 已解决
az85200 2018-05-17
  • 打赏
  • 举报
回复 2
引用 8 楼 TC_COM 的回复:
主要的原因是 你可能使用了 tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); 更新数据的时候会去算列表项的宽度、高度, 现象是数据愈多越慢~ 解决方案是 更新前设置成 QHeaderView::Fixed 更新完成后设置成 QHeaderView::ResizeToContents
带哥,我这条命都是你给的。怒赞。
TC_COM 2017-09-13
  • 打赏
  • 举报
回复 4
主要的原因是 你可能使用了 tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); 更新数据的时候会去算列表项的宽度、高度, 现象是数据愈多越慢~ 解决方案是 更新前设置成 QHeaderView::Fixed 更新完成后设置成 QHeaderView::ResizeToContents
cg4561232007 2016-08-01
  • 打赏
  • 举报
回复
是,除了这种方法该怎么做?
引用 5 楼 zbw1185 的回复:
QTableWidgetItem *item = new QTableWidgetItem("Hello");每次循环你都得new一个对象出来,这下都new了100个了。
画茧自缚 2016-08-01
  • 打赏
  • 举报
回复
QTableWidgetItem *item = new QTableWidgetItem("Hello");每次循环你都得new一个对象出来,这下都new了100个了。
cg4561232007 2016-08-01
  • 打赏
  • 举报
回复
10条就卡6,7s左右,100条1分多钟。 是不是有别的用法?
cg4561232007 2016-08-01
  • 打赏
  • 举报
回复
for (int i = 0; i < 10;i++)
	for (int j = 0; j < 5; j++)
	{
		QTableWidgetItem *item = new QTableWidgetItem("Hello");
		fileTbWidget->setItem(i, j, item);
	}
Little柯南 2016-08-01
  • 打赏
  • 举报
回复
QStringList list1<<"1"<<"2"<<"3"<<"4"<<"5"; QTreeWidgetItem* firstTree = new QTreeWidgetItem(ui->treeWidget,list1); firstTree->setIcon(0, QIcon("images/data.png")); ui->treeWidget->addTopLevelItem(firstTree); 你可以这样动态的添加,我的虽然没有100条,但是没有丝毫卡顿现象,你试试吧!
冷静忍耐 2016-08-01
  • 打赏
  • 举报
回复
是你滚动慢还是插入数据慢 卡几秒??
冷静忍耐 2016-08-01
  • 打赏
  • 举报
回复
引用 4 楼 cg4561232007 的回复:
10条就卡6,7s左右,100条1分多钟。 是不是有别的用法?
那肯定不是QTableWidget的setItem这个方法问题,这么慢明显不科学,可能其他代码导致的吧 你是在调试模式下??就是F5执行的才有可能这么慢吧

16,175

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧