gpt4 book ai didi

qt - 设置事件优先级

转载 作者:行者123 更新时间:2023-12-04 12:48:07 51 4
gpt4 key购买 nike

我正在 QT 中申请。我使用 QExtSerialPort 从我的 comp 的串行端口接收数据(无论何时发出 readyread() 信号)。我也有一些计时器以特定的时间间隔运行其他东西。现在我注意到,当定时器打开时,并不是所有的 readyread 信号的数据都发射得少很多,那么当定时器没有打开时。 QT中有没有办法确保串口的所有数据都收到了?也许通过为 readyread 事件或类似的事情设置高优先级?

最佳答案

信号槽连接和事件系统之间存在差异。信号发射和槽触发不是分开的——当信号被发射时,连接的槽开始工作。所以他们(信号)不能丢失。

所有事件都通过应用程序发送,也被接收,但它可以稍后发生。当控制返回到主事件循环时,存储在队列中的所有事件都将被处理。

如果您自己发布事件,则可以使用static void QCoreApplication::postEvent ( QObject* receiver, QEvent* event, int priority );方法。
事件按优先级降序排列,即高优先级的事件排在低优先级的事件之前。优先级可以是任何整数值,即介于 INT_MAX 和 INT_MIN 之间,包括;有关更多详细信息,请参阅 Qt::EventPriority。具有相同优先级的事件将按照发布的顺序进行处理。

关于qt - 设置事件优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12279552/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com