我想在不同的类中执行一个插槽。是否可能
UI_CDSK Obj;
connect(Obj.penDrive,SIGNAL(clicked()),this,SLOT( Obj.caller()));
这段代码在不同的类中,我想从这个类中执行不同类的插槽(UI_CDSK)
这里penDrive和调用者属于函数UI_CDSK类,上面提到的代码在其他类中
答案 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。