AFAIK, Sie können nur Signale mit Steckplätzen verbinden, und Steckplätze können nur als Mitgliedsfunktionen eines Q_OBJECT existieren.
Während viele Leute sich auf die Unterschiede zwischen Templates vs Moc zwischen Qt-Signalen und Boost :: -Signalen oder GTKmm-Signalen konzentrieren, ist dies der Unterschied, um den ich mich letztlich mehr sorge. Qt-Signale sind nicht so ausdrucksstark und verursachen mehr Abhängigkeiten als ich möchte.
Ich benutze immer noch Qt, aber das ist nur, weil GTKmm Zugänglichkeit auf Win32-Systemen vollständig fehlt.
Was Sie tun können, ist natürlich, eine Unterklasse von QTimer zu machen, die mit ihrem eigenen Timeout-Signal mit einem Steckplatz verbunden ist, der ein boost :: -Signal erzeugt, das Sie mit Ihrer externen Funktion verbinden können. Achten Sie auf die Probleme bei der Verwendung von Boost-Signalen in Qt, aber ich benutze nur Signale2, um es vollständig zu vermeiden UND ich bekomme Thread-Sicherheit.
Es ist vielleicht erwähnenswert, dass diese Funktionalität in Qt 5 eingeführt wird http://developer.qt.nokia .com/wiki/Neue_Signal_Slot_Syntax – leinir