วิธีง่ายๆ ในการเชื่อมต่อสัญญาณและสล็อตด้วยค่าอาร์กิวเมนต์ที่แปลงแล้ว ตัวอย่างเช่น ฉันมี signal(bool state)
ตัวเดียว มันเชื่อมต่อกับสล็อต slot(bool reversed_state)
ที่นี่สถานะเป็นสถานะย้อนกลับ (ไม่ใช่เชิงตรรกะ) ของสถานะสัญญาณ
วิธีการเชื่อมต่อสัญญาณและสล็อตด้วยค่าอาร์กิวเมนต์ที่แปลงแล้ว
คำตอบ (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