2011-12-27 4 views
0

В родительском классе, я имею установку слот в конструкторе:Qt слот и класс inheritation

Class DummyParent 
{ 
    protected: 
     QWebPage page; 

    public slots: 
      DummyParent() 
      { 
       connect (&page , SIGNAL(...) , SLOT(replyFinir(bool)); 
      } 

      void replyFinir (bool ok) 
      { 
       // handle reply messages 
      } 
    }; 

Теперь у меня есть еще один класс, производный от DummyParent:

class DummyChild 
{ 
    public slots: 
     void replyFinir (bool ok) 
     { 

     } 
} 

Теперь у меня есть проблемы, так как настройка соединения слотов в конструкторе DummyParent, поэтому он подключается к старому обработчику, а не к текущему.

Как я могу позволить DummyChild :: page вызвать собственный метод ответаFinir (bool)?

+0

Получил макросы Q_OBJECT везде? (особенно в производном классе) –

ответ

4

Вы забыли virtual в базовом классе ответ финир?

Альтернативно просто отсоединить/снова подключить сигнал в производном классе ctor

+0

виртуальный должен выполнять работу –

Смежные вопросы