主题 : 求助kasim及各位高手:关于工作线程中发出事件 复制链接 | 浏览器收藏 | 打印
未设置
级别: 侠客
UID: 19393
精华: 0
发帖: 55
金钱: 275 两
威望: 55 点
综合积分: 110 分
注册时间: 2010-04-19
最后登录: 2011-10-09
楼主  发表于: 2010-06-07 14:38

 求助kasim及各位高手:关于工作线程中发出事件

请教:

使用mini2440自带的qtopia系统(无QThread)。


使用pthread_create创建的工作线程中,当员工登录(此操作在工作线程中)成功时需要通知界面显示指定员工(通过员工工号指定)的照片。
如果有QThread,似乎可以通过emit一个signal来实现,但是直接使用的pthread该怎么办呢?


在创建线程的时候把Main Widget的指针(mw)传入线程,然后在线程中postEvent(mw,QEvent::user);可不可行?
如果可以,在哪里传送员工工号这个参数呢,不会要使用全局变量才行吧?
[ 此帖被hailongxl在2010-06-07 14:56重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-06-07 15:22

 回 楼主(hailongxl) 的帖子

int pthread_create(pthread_t *restrict thread,
              const pthread_attr_t *restrict attr,
              void *(*start_routine)(void*), void *restrict arg);

其中arg参数可以指向任何一个你需要的结构变量,这个结构变量里可以包含任何你感兴趣的东西。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
未设置
级别: 侠客
UID: 19393
精华: 0
发帖: 55
金钱: 275 两
威望: 55 点
综合积分: 110 分
注册时间: 2010-04-19
最后登录: 2011-10-09
2楼  发表于: 2010-06-07 15:33
引用:其中arg参数可以指向任何一个你需要的结构变量,这个结构变量里可以包含任何你感兴趣的东西。

是的,这个我知道。
我想问的是在线程中怎么来通知主界面更新照片呢?

线程无法使用QThread,也就没法emit一个signal了吧?那么可以从线程中postEvent吗?postEvent怎么携带指定的参数呢?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-06-07 16:04
那么可以从线程中postEvent吗?postEvent怎么携带指定的参数呢?

为什么不可以?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
未设置
级别: 侠客
UID: 19393
精华: 0
发帖: 55
金钱: 275 两
威望: 55 点
综合积分: 110 分
注册时间: 2010-04-19
最后登录: 2011-10-09
4楼  发表于: 2010-06-07 16:25
恩,是可以。我baidu了很久,发现了QCustomEvent.