在与硬件设备通讯时刻,特别是利用串口作为通讯手段时,连续的发几条指令给硬件设备,硬件设备可能响应不过来。因此需延时发送指令。但是Qt 的sleep()函数会使Qt界面程序卡住,属于阻塞延时。由此,非阻塞方式对于实际应用有很大作用,以下是延时代码:
QTime t;
t.start();
while(t.elapsed()<500)//此处500表示500毫秒
QCoreApplication::processEvents();//不停地处理事件,以使得程序保持响应。
在与硬件设备通讯时刻,特别是利用串口作为通讯手段时,连续的发几条指令给硬件设备,硬件设备可能响应不过来。因此需延时发送指令。但是Qt 的sleep()函数会使Qt界面程序卡住,属于阻塞延时。由此,非阻塞方式对于实际应用有很大作用,以下是延时代码:
QTime t;
t.start();
while(t.elapsed()<500)//此处500表示500毫秒
QCoreApplication::processEvents();//不停地处理事件,以使得程序保持响应。