Fra*_*ank 3 qt serial-port priority-queue
我正在QT中进行申请。我使用QExtSerialPort从我的comp的串行端口接收数据(无论何时发出readyread()信号)。我也有一些计时器以一定的间隔运行其他事情。现在我注意到,当定时器打开时,不是当定时器未打开时,并非readyread信号的所有数据都少很多。QT中是否有一种方法可以确保已接收到串行端口的所有数据?也许通过将readyread事件设置为高优先级或诸如此类?
信号插槽连接和事件系统之间存在差异。信号发射和插槽触发不是分开的东西-发射信号时,连接的插槽开始工作。因此,它们(信号)不会丢失。
所有事件都通过应用程序发送,也可以接收,但是以后可能会发生。当控制权返回到主事件循环时,将处理队列中存储的所有事件。
如果您自己发布事件,则可以使用
static void QCoreApplication::postEvent ( QObject* receiver, QEvent* event, int priority );方法。事件按照优先级从高到低的顺序排序,即,优先级高的事件先于优先级低的事件排队。优先级可以是任何整数值,即INT_MAX和INT_MIN之间的值(包括端点值);有关更多详细信息,请参见Qt :: EventPriority。具有相同优先级的事件将按照发布的顺序进行处理。