• 5383阅读
  • 3回复

紧急求助,非图形线程问题 [复制链接]

上一主题 下一主题
离线ink_32
 

只看楼主 正序阅读 楼主  发表于: 2008-09-10
— 本帖被 XChinux 执行加亮操作(2008-09-10) —
写的一个qt程序,用到了串口,串口接收采用了中断,中断处理函数void io_handler(),在这个函数里面对界面进行了操作,比如修改文本框等等,问题来了……程序一旦进入到中断,对界面qt图形类操作时,就很容易死。

1.看书上说,非图形用户线程不可直接调用函数对窗口部件进行处理。请问,那个串口中断是不是属于另外一个线程,不属于应用程序创建的图形线程,所以调用窗口部件处理才会死?

2.后来对程序进行了修改,在中断void io_handler()中给窗口发自定义事件qcustomevent,让窗口自己对部件进行处理,但是程序进入中断,跑到QApplication::postEvent(mainwindow,event)时,有时又会死在这里(qcustomevent在中断中创建)。

有点罗嗦,菜鸟一个,在这里困了好久,找不到解决方法,但是又必须在中断时,在界面文本框打印出一些信息。感觉怎么改程序都会出现死的问题。
请问各位高手,我现在到底应该怎么改,才能解决程序死的问题呢,谢谢!
离线songxizg

只看该作者 3楼 发表于: 2008-09-16
signal 不需要实现,申明下就可以了。
离线ink_32

只看该作者 2楼 发表于: 2008-09-10
谢谢,麻烦请问有signal的实现代码吗?
另外,为什么在中断中QApplication::postEvent(mainwindow,event)时会死呢?
离线XChinux

只看该作者 1楼 发表于: 2008-09-10
用线程发送signal,让主线程接收。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个