有时候当我们需要频繁刷新界面的时,界面就会出现卡顿,或者卡死的情况,这个时候需要这样做。
本例使用QTableView为例子为大家讲解解决方法。
猜想一:缓存+定时器
当有数据的时候调用setShowText()方法,将数据缓存到队列中,然后通过定时器QTimer,每隔一段时间调用slotShowTextByTimer()添加到界面上,但是效果不理想。
ui->tableView->horizontalHeader()->hide();
ui->tableView->horizontalHeader()->setStretchLastSection(true);
QStandardItemModel m_model = new QStandardItemModel();
m_model->setColumnCount(1);
ui->tableView->setModel(m_model);
QTimer m_timer = new QTimer(this);
connect(m_timer,&QTimer::timeout,this,&ArcticNebulaShowWidget::slotShowTextByTimer);
m_timer->start(100);
QQueue<QString> m_text;//缓存队列
//======================================