写的一个qt程序,用到了串口,串口接收采用了中断,中断处理函数void io_handler(),在这个函数里面对界面进行了操作,比如修改文本框等等,问题来了……程序一旦进入到中断,对界面qt图形类操作时,就很容易死。
1.看书上说,非图形用户线程不可直接调用函数对窗口部件进行处理。请问,那个串口中断是不是属于另外一个线程,不属于应用程序创建的图形线程,所以调用窗口部件处理才会死?
2.后来对程序进行了修改,在中断void io_handler()中给窗口发自定义事件qcustomevent,让窗口自己对部件进行处理,但是程序进入中断,跑到QApplication::postEvent(mainwindow,event)时,有时又会死在这里(qcustomevent在中断中创建)。
有点罗嗦,菜鸟一个,在这里困了好久,找不到解决方法,但是又必须在中断时,在界面文本框打印出一些信息。感觉怎么改程序都会出现死的问题。
请问各位高手,我现在到底应该怎么改,才能解决程序死的问题呢,谢谢!