Qt 解决界面频繁刷新卡顿的问题

在开发Qt应用时,遇到界面频繁刷新导致的卡顿问题,可以尝试多种策略来优化。如使用缓存和定时器更新,限制界面显示数据的数量,但效果有限。最终采用将model放入多线程中运行,有效解决了界面卡顿问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候当我们需要频繁刷新界面的时,界面就会出现卡顿,或者卡死的情况,这个时候需要这样做。

本例使用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;//缓存队列


    //======================================
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灬Sunnnnn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值