QT记录一个解决QlistWidget列表项加载较慢的问题

之前使用qlistwidget加载其他widget显示时会存在一个问题,就是大量的数据加载会导致界面之间的切换卡顿。如图所示:大量的数据会导致进入这个界面的速度变慢大量的数据会导致进入这个界面的速度变慢
原本的代码是这样的

        user_log_item* logitem = new user_log_item;
        logitem->setInfo(username+"("+usertype+")",op,time,risk);//这里是我给这个条目赋值的一个函数
        QListWidgetItem* item =new QListWidgetItem;
        item->setSizeHint(QSize(800,40));		//设置每一项的宽高
        //ui->listWidget->insertItem(0,item);	//使用这个方法插入数据可以使最新的操作记录在最上方
        ui->listWidget->addItem(item);			//这个方式会依次在下方插入数据
        ui->listWidget->setItemWidget(item,logitem);`	//把widget,也就是logitem插入到listwidget的item中

现在只需要在这段代码的后面加入这样的代码即可完成分段式加载,需要注意的是在加载完成之前直接销毁窗口会导致程序崩溃,我这里使用延迟释放内存的方式解决的该问题。

需要加入的代码:

			//要提前取在最开始定义i的初始值为0
			//这里的逻辑是分段式加载,每12个进行一次加载。
			if(i-12==0){//设定延迟刷新
                QTime reachtime = QTime::currentTime().addMSecs(100);//这个是100毫秒进行一次刷新,每次刷新12个,刷新之后i清零。
                while(QTime::currentTime()<reachtime){
                    QCoreApplication::processEvents(QEventLoop::AllEvents,100);
                }
                i=0;
            }
            i++;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值