2011-12-27 121 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调用它自己的replyFinir(bool)函数?

+0

到处都有Q_OBJECT宏? (特别是派生类) – 2011-12-27 09:56:50

回答

4

您忘记了基类replyfinir中的virtual

或者只是断开/重新连接派生类中的信号ctor

+0

虚拟应该做的工作 – 2011-12-27 17:05:42