【问题标题】:How to connect signals and slots with transformed argument values如何使用转换后的参数值连接信号和插槽
【发布时间】:2013-10-01 14:21:36
【问题描述】:

使用转换后的参数值连接信号和槽的任何简单方法。例如,我有一个signal(bool state),它连接到一个插槽slot(bool reversed_state),这里的状态是信号状态的反转状态(逻辑上不是)。

【问题讨论】:

    标签: qt signals-slots


    【解决方案1】:

    创建一个中间槽来链接两者:-

    class MyClass : public QObject
    {
        Q_OBJECT
    public:
        signals:
            void SomeSignal(bool state);
            void SomeSignalSwitched(bool state); // reverse the state
    
        public slots:            
    
            void ReversedStateSlot(bool reversed_state);
     };
    
    
    void MyClass::SomeSignalSwitched(bool state)
    {
        bool newState = !state
        emit SomeSignalSwitched(newState);
    }
    
    // NOTE Qt 5 connect functions
    
    connect(myClassObject, &MyClass::SomeSignal, myClassObject, &MyClass::SomeSignalSwitched);
    connect(myClassObject, &MyClass::SomeSignalSwitched, myClassObject, &MyClass::ReversedStateSlot);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多