Timer ruft Slot nicht auf



  • Hallo,
    ich möchte mit einem Timer einen Slot auslösen. Leider passiert da nichts.
    Ich habe eine Klasse Namens Wecker gestellt. In der Headerdatei "wecker" vereinbare ich den Timer:

    QTimer *weckerTimer
    

    und den passenden Slot:

    public slots:
    void weckerTimerSlot();
    

    Und im Konstruktor der Klasse in der Quelldatei "wecker" habe ich folgendes:

    weckerTimer = new QTimer();
    QObject::connect(weckerTimer, SIGNAL(timeout()),this, SLOT(weckerTimerSlot()));
    weckerTimer->start(1000);
    

    Der Slot sieht so aus:

    void Wecker::weckerTimerSlot()
    {
        QMessageBox::information(this, "Test","Test");
    }
    

    Der Konstruktor wird zwar definitiv ausgeführt, aber der Slot weckerTimerSlot() wird nicht aufgerufen... Ich kann den Fehler einfach nicht finden 😡

    Ich wäre sehr dankbar wenn mir jemand hilft. Danke sehr!



  • Hast Du im Header das Qt-Macro 'Q_OBJECT' eingetragen?



  • Ja, habe ich



  • Wie wird der Wecker erzeugt?



  • MFK, was genau meinst du?



  • smallopointer schrieb:

    MFK, was genau meinst du?

    Wie wäre es mit einem übersetzbaren minimalen Beispiel der dein Problem zeigt.
    Sonst artet das ganze in Glaskugel raten aus



  • Hab den Projektordner kopiert und woanders abgelegt. Anschließend habe ich die pro.user-Datei + das Build-Verzeichnes gelöscht und dann nochmal ausgeführt und siehe da: ES FUNKTIONIERT! Warum auch immer 😕
    Dennoch vielen Dank an Euch!


Log in to reply