Выполнить слот в другом классе - PullRequest
0 голосов
/ 21 апреля 2010

Я хочу выполнить слот в другом классе. Возможно ли это

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

Этот код находится в другом классе, и из этого класса я хочу выполнить слот другого класса (UI_CDSK)

Здесь penDrive и вызывающая сторона принадлежит классу функции UI_CDSK, а упомянутый код находится в другом классе

Ответы [ 2 ]

3 голосов
/ 21 апреля 2010

Немного сложно, не зная внутренности UI_CDSK, но правильный синтаксис должен быть:

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

Пока caller() является публичным слотом в UI_CDSK.

0 голосов
/ 21 апреля 2010

Метод connect принимает указатель в качестве объекта-получателя, поэтому, если Obj не является указателем на объект UI_CDSK:

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

Также это, вероятно, уже сделано (в противном случае ваш компилятор жаловался бы), но для использования механизма слотов сигналов Qt ваш класс UI_CDSK должен наследоваться от QObject.

Похоже, слот не должен быть публичным .

...