Zeitserver-Anwendung
Ein Server, der ein Zeitobjekt mit verbundenen Clients teilt.
Die Zeitserver-Anwendung instanziiert ein „ MinuteTimer “-Objekt und stellt es allen verbundenen Zeit-Client-Anwendungen zur Verfügung.

Definition von Remote-Objekten mithilfe einer REP-Datei
Die REP-Datei „timemodel.rep“ im übergeordneten Verzeichnis des Beispiels wird verwendet, um die von beiden Anwendungen genutzten Header-Dateien zu generieren. Für diese Anwendung definiert die generierte Datei „rep_timemodel_source.h“ die Klasse ` MinuteTimerSource`, die Klasse, von der für die Implementierung von ` MinuteTimer` abgeleitet werden muss, sowie weitere zugehörige Klassen.
Die Klasse „TimeModel“
Die Klasse „ TimeModel “ in „timemodel.h“ und „timemodel.cpp“ implementiert das gemeinsam genutzte Zeitobjekt. Sie verwendet ein „ QBasicTimer “, um sicherzustellen, dass die Zeit durch den Aufruf der Memberfunktion „ timerEvent “ aktualisiert wird.
void MinuteTimer::timerEvent(QTimerEvent*)
{
QTime now = QTime::currentTime();
if (now.second()== 59&& now.minute()== time.minute()&& now.hour()== time.hour()) {
// Der Zeit-Tick wurde knapp verpasst, erzwinge ihn, warte zusätzlich 0,5 Sekunden
time = time.addSecs(60);
timer.start(60500, this);
} else {
time = now;
timer.start(60000- time.second()* 1000, this);
}
qDebug()<<"Time"<<time;
setHour(time.hour());
setMinute(time.minute());
emit timeChanged();
}Eine Instanz von `TimeModel` freigeben
Instanzen von „ QRemoteObjectHost “ und „ QRemoteObjectRegistryHost “ werden erstellt, um ein Objekt zu hosten und über eine Registrierung zu verfügen, über die es gefunden werden kann. Anschließend wird ein „ MinuteTimer “-Objekt erstellt und mithilfe der Member-Funktion „ enableRemoting “ des „ QRemoteObjectRegistryHost “-Objekts freigegeben.
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
#if defined(Q_OS_UNIX) || defined(Q_OS_LINUX) || defined(Q_OS_QNX)
signal(SIGINT, &unix_handler);
#elif defined(Q_OS_WIN32)
SetConsoleCtrlHandler((PHANDLER_ROUTINE)WinHandler, TRUE);
#endif
QRemoteObjectHost node(QUrl(QStringLiteral("local:replica")),QUrl(QStringLiteral("local:registry")));
QRemoteObjectRegistryHost node2(QUrl(QStringLiteral("local:registry")));
MinuteTimer timer;
node2.enableRemoting(&timer);
Q_UNUSED(timer)
return app.exec();
}Siehe auch „Time Client Application“.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.