• 4321阅读
  • 0回复

问一个SIGNAL和slot的问题 [复制链接]

上一主题 下一主题
离线wangyiqing
 
只看楼主 倒序阅读 楼主  发表于: 2007-06-07
— 本帖被 XChinux 执行加亮操作(2008-07-18) —
编程中遇到了问题需要用多线程,代码如下:
******************************
NoteBook* a = new NoteBook;
Test*b = new Test;
connect(a,SIGNAL(pushEvent(const TimeEvent&)),b,SLOT(addEvent(const TimeEvent&)));
pthread_t id;
pthread_create(&id,NULL,test,(void* b));

void * test(void* a)
{
Test* temp = (Test*)a;
temp->start();
}

void Test::start()
{
    for( int i = 0 ; i < 4 ; i++ )
    {
         sleep(2);
         printf("add an event\n");
         emit    pushEvent( eventArray );
   }
}

其中TimeEvent是一个自定义的结构体,编译可以通过,但是运行是报错:
QObject::connect : can not  queue arguments of type 'TimeEvent'
想请问signal和slot之间的参数交换是否仅限于build-in类型和Qt自己的类?
还是说只有在线程之间传递参数时候才会有这种对参数的限制?
[ 此贴被XChinux在2008-07-18 15:50重新编辑 ]
快速回复
限100 字节
 
上一个 下一个