Qt键盘驱动CPU占用过高

博客讲述了在实现Qt自定义键盘时遇到的CPU占用过高的问题,发现问题是由于Qt通过QSocketNotifier进行键盘事件监控导致的。作者提出了解决方案,即在驱动中加入poll函数,仅在按键按下时设置mask,以降低CPU使用率。

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

最近实现了Qt的自定义键盘,虽然可以使用,但是CPU占用总是很高,将近100%。

调查可以发现Qt的键盘事件监控是通过QSocketNotifier实现的。

m_notifier = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
connect (m_notifier, SIGNAL(activated(int)), this, SLOT(remoteDataIncoming()));


问题就出在这里,说明驱动一直可以读取,导致一直调用Read函数。而 QSocketNotifier的activated(int)信号是根据驱动poll函数返回的状态触发的, 自己的驱动未加入该函数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值