2010-12-21 11 views
0

Ich entwickle eine GUI in QT, wo ich das Batteriestatus-Symbol zeigen muss. Um den Systemstromstatus zu erhalten, verwende ich die Windows-API. Aber um den Status jederzeit anzuzeigen, muss ich einen Thread verwenden, um den Stromstatus kontinuierlich zu lesen und anzuzeigen?Windows Power State Änderung Ereignisbenachrichtigung in Qt

Ich denke daran, Event-Handler zu verwenden. Aber nicht sicher, wie zu implementieren ist. Ich denke, dass ich für nur eine Statussymbole einen Thread ausführen werde. Jeder hat einen besseren Vorschlag, bitte teilen.

Antwort

0

Die Verwendung eines Threads könnte ein Overkill sein, aber die Verwendung eines Timers könnte für diesen Fall viel geeigneter sein.

QTimer kann verwendet werden, um den Batteriestatus bei gegebenem Intervall zu aktualisieren. Erstellen Sie einfach QTimer-Objekt und verbinden Sie es timeout() Signal an Steckplatz in Ihrem Objekt, vielleicht in einigen Batteriezustand Widget. In diesem Slot liest man einfach den neuen Status und aktualisiert das Icon entsprechend. Starten Sie die QTimer-Instanz mit einem Intervall Ihrer Wahl in Millisekunden.

Btw. Qt Mobility API kann verwendet werden, um read power state auch auf dem Desktop. Wenn die Portierung kein Problem darstellt, ist es vielleicht einfacher, die API zu verwenden, die die Plattform bereits bietet.