Как связать сигналы и слоты с преобразованными значениями аргументов

Любой простой способ соединить сигналы и слоты с преобразованными значениями аргументов. Например, у меня есть одиночный signal(bool state), он подключен к слоту slot(bool reversed_state), здесь состояние - это перевернутое состояние (логически нет) состояния сигнала.


person user1899020    schedule 01.10.2013    source источник


Ответы (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);
person TheDarkKnight    schedule 01.10.2013