【问题标题】:How to process signals in a Qt subclass?如何处理 Qt 子类中的信号?
【发布时间】:2010-06-09 07:41:15
【问题描述】:

如何处理子类中的信号?假设我的子类派生自QTextEdit,并且对信号textChanged 感兴趣。将对象连接到自身似乎很愚蠢,我应该能够简单地覆盖textChange 方法——但它不是virtual

公认的方法是什么?

【问题讨论】:

    标签: c++ qt overriding subclass signals-slots


    【解决方案1】:

    您无法实现/覆盖信号,因此唯一的方法是创建一个新插槽并将其连接到 textChanged():

    connect( this, SIGNAL(textChanged(QString)), this, SLOT(slotTextChanged(QString)) );
    

    【讨论】:

      【解决方案2】:

      也许这看起来很傻,但我就是这样做的:将我的派生类连接到父类发出的信号。

      但是如果有其他解决方案,我很感兴趣!

      【讨论】:

        【解决方案3】:

        将信号连接到同一类的插槽是完全可以的。 所以实现你的插槽并将其连接到textChanged(QString)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-21
          • 1970-01-01
          • 2016-03-31
          • 2014-07-18
          相关资源
          最近更新 更多