2017-04-12 4 views
0

Problem: Ich habe einen Schalter, der für etwa 50 Sekunden am Anfang des Programms deaktiviert werden und dann wieder aktiviert werden muss.qml - Disable Switch mit einem Timer

Wenn mein Timer endet, gibt es eine Art zu sagen, dass es beendet ist, damit ich den Schalter wieder aktivieren kann? Oder gibt es eine Möglichkeit, dies ohne einen Timer zu tun.

Vielen Dank im Voraus!

Timer { 
     id: delaySwitch 
     interval: 50000; 
     running: true; 
     repeat: false 
     onTriggered: { 
      mySwitch.enabled = false; 
     } 
    } 
+0

Was meinst du damit, wenn du ihm sagst, dass er dir sagen soll, wann der Timer endet? – eyllanesc

+0

@eyllanesc ich meine, wenn der Timer das Ende seines Intervalls (50 Sekunden) erreicht, möchte ich den Schalter wieder aktivieren – green123

+1

Was ich verstehe ist, dass der Schalter standardmäßig deaktiviert ist, nach 50 Sekunden möchten Sie es aktivieren , hab ich recht? – eyllanesc

Antwort

2

Deaktivieren Sie Ihren Switch und verwenden Sie das getriggerte Signal, um es zu aktivieren.

Switch{ 
    id: mySwitch 
    enabled: false 
} 

Timer { 
    id: delaySwitch 
    interval: 50000; 
    running: true; 
    repeat: false 
    onTriggered: { 
     mySwitch.enabled = true; 
    } 
} 
+0

Vielen Dank !! Ich habe das Triggersignal nicht richtig benutzt. – green123

1

Sie können es alternativ in einer deklarativen Weise:

Switch { 
    id: mySwitch 
    enabled: !delaySwitch.running 
} 

Timer { 
    id: delaySwitch 
    interval: 50000 
    running: true 
} 
1

Sie es auch als selbstzerstörende haben könnte Timer

Switch { 
    property Timer t: timer.createObject(this) 
    enabled: !t 
} 

Component { 
    id: timer 
    Timer { 
     interval: 50000 
     running: true 
     onTriggered: destroy() 
    } 
} 

Fragen Sie mich nicht für die Leistung obwohl. Wahrscheinlich, wenn nur einmal verwendet, die Component und die neue Klasse für die Switch with property t wird mehr Speicher verbrauchen, als Sie frei durch die Zerstörung der Timer. Vielleicht, wenn Sie diese Switch Tonnen Mal verwenden, könnte es Ihnen etwas Speicher sparen. Aber afaik, ein Timer ist ein wirklich kleines Objekt.