• 5733阅读
  • 11回复

qt中如何使用signal呢? [复制链接]

上一主题 下一主题
离线wangbenqq
 

只看楼主 倒序阅读 楼主  发表于: 2008-11-19
— 本帖被 XChinux 执行加亮操作(2008-11-30) —
请问在QT中如何使用singal呢?
我在类FILE里面定义了一个函数void handler();在使用的时候signal(10,handler);
但是编译的时候出错: 错误: 实参类型为 ‘void (File::)()’,与 ‘void (*)(int)’ 不匹配
这个要怎么弄呢?
谢谢各位的指点
离线vrcats
只看该作者 1楼 发表于: 2008-11-19
这是Qt几啊,哪来这么个signal函数?
离线wangbenqq

只看该作者 2楼 发表于: 2008-11-19
signal 是系统的函数啊
不是QT自带的
离线vrcats
只看该作者 3楼 发表于: 2008-11-19
是不是应该用signal(10,&handler)啊
离线wangbenqq

只看该作者 4楼 发表于: 2008-11-19
好象是指针函数的原因
但是怎么使用呢?
离线wangbenqq

只看该作者 5楼 发表于: 2008-11-19
我改成 void (*handler)(int i);
但是提示expected unqualified-id before "(" token,它说的就是函数定义的那一行。
为什么呢?
我搞了一上午实在是搞不定了

请教 啊!
离线water_wf

只看该作者 6楼 发表于: 2008-11-19
当然不行了,类unix系统的signal(int,sighandler);
sighandler必须为一个函数
必须为一个函数,哪有传递一个类成员函数进去的?ft
离线water_wf

只看该作者 7楼 发表于: 2008-11-19
ft.说错了,应改传递一个函数指针进去,而不是类成员函数指针
离线wangbenqq

只看该作者 8楼 发表于: 2008-11-19
引用第7楼water_wf于2008-11-19 13:32发表的  :
ft.说错了,应改传递一个函数指针进去,而不是类成员函数指针


谢谢
不过我要得到这个信号之后,对我的界面进行操作,不把这个函数定义为类成员函数指针,怎么对类里面的成员进行操作呢??

这点我概念不是太清晰,还多多请教您!
离线water_wf

只看该作者 9楼 发表于: 2008-11-19
这个简单,在函数中比如
void signalhandler( int *){
  QEvent *event = new QEvent(xxxxx);//你自己设计消息,custom event 也行
QApplication::postEvent(event,,,) //到你要接收的地方
}
离线wangbenqq

只看该作者 10楼 发表于: 2008-11-19
postEvent的时候
得不到receiver啊
因为这个函数里面是没有声明这个receiver
离线wangbenqq

只看该作者 11楼 发表于: 2008-11-19
引用第9楼water_wf于2008-11-19 14:41发表的  :
这个简单,在函数中比如
void signalhandler( int *){
  QEvent *event = new QEvent(xxxxx);//你自己设计消息,custom event 也行
QApplication::postEvent(event,,,) //到你要接收的地方
}

postEvent的时候
得不到receiver啊
因为这个函数里面是没有声明这个receiver
快速回复
限100 字节
 
上一个 下一个