在不同的类中执行Slot

时间:2010-04-21 09:35:12

标签: qt qt4 qt-creator

我想在不同的类中执行一个插槽。是否可能

 UI_CDSK Obj;
 connect(Obj.penDrive,SIGNAL(clicked()),this,SLOT( Obj.caller()));

这段代码在不同的类中,我想从这个类中执行不同类的插槽(UI_CDSK)

这里penDrive和调用者属于函数UI_CDSK类,上面提到的代码在其他类中

2 个答案:

答案 0 :(得分:3)

如果不知道UI_CDSK的内部结构有点困难,但正确的语法应该是:

connect( Obj.penDrive, SIGNAL(clicked()), Obj, SLOT(caller()) );

只要caller()是UI_CDSK中的公共广告位。

答案 1 :(得分:0)

connect方法将指针作为接收器对象,因此如果Obj不是指向UI_CDSK对象的指针:

connect(Obj.pendrive, SIGNAL(clicked()), &Obj, SLOT(caller()));

这也许已经完成了(否则你的编译器会抱怨),但是要使用Qt信号槽机制,你的UI_CDSK类必须从QObject继承。

看起来像插槽doesn't need to be public