qtui 假死

39 篇文章 2 订阅

目的

这篇博客主要目的是说明Qt窗口最小化还原窗口不刷新或者是白色或者是透明。但是我在某个项目中出现有类似于这样现象
但不完全是这样触发条件,因此在这里写篇博客整理此类型问题而已。

说明

我那程序是拉四路流同时, 又有测试投屏功能, 同时又开启录制功能, 程序跑着跑着就突然预览流卡死,然后整个ui出现假死现象(ui不刷新, 但是主线程能够处理对应事件)。
起初我还以为是主线程阻塞了, 首先想到的是死锁, 结果通过vs堆栈以及线程使用情况, 没发现任何异常情况。搜了一些, 总感觉奇奇怪怪, 但又不是这个问题。

网上搜了下 参考几篇博客
一:
最小化窗口后无法还原, 背景透明与无窗口提示设置导致, 还说是qt 5.2之后解决。但问题是我的使用版本5.15.2.

Widget with Qt::FramelessWindowHint and Qt::WA_TranslucentBackground stops painting after minimize/restore
https://bugreports.qt.io/browse/QTBUG-34147

void TestDlg::changeEvent( QEvent* e )
{

if( e->type() == QEvent::WindowStateChange)
{
if(this->windowState() & Qt::WindowMinimized )
{
//do something after minimize
}
else
{
setWindowFlags(Qt::Window);//set normal window flag
setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);//and return to your old flags

this->showNormal();

}
}
}

二:

假死没刷新, 设置Qt::WA_Mapped

void MainWindow::showEvent(QShowEvent *event)
{
    setAttribute(Qt::WA_Mapped);
    QMainWindow::showEvent(event);
}

经过实验分析:nuc性能比较差, 当前全部跑起来, 再加上腾讯会议, 几乎吃掉了cpu100%性能。
初步分析nuc hdmi 驱动需要优化, 目前采用的2k 60优化后的驱动, 整个跑起来只占有50%性能。ui假死问题 似乎也没怎么出现。
此上述搜到的, 只是作为参考而整理, 目前遇见的并不是此类问题。所以方案是否可行, 请读者因自身实际情况酌情分析,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

道阻且长,行则降至

无聊,打赏求刺激而已

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

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

打赏作者

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

抵扣说明:

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

余额充值