失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > qt linux 修改系统时间 在Linux上使用QT设置系统时钟

qt linux 修改系统时间 在Linux上使用QT设置系统时钟

时间:2022-09-24 09:52:45

相关推荐

qt linux 修改系统时间 在Linux上使用QT设置系统时钟

您可以使用dbus与定时守护程序进行交互/wiki/Software/systemd/timedated/

设置时间和日期。

Qt提供了一种从xml http://doc.qt.io/qt-5/qdbusxml2cpp.html生成接口代码的方法 。您可以通过内省获得xml。

我不喜欢生成的代码格式,所以我自己编写了接口代码

H:

#ifndef TIMEDATE1SERVICE_H

#define TIMEDATE1SERVICE_H

#include

#include

#include

#include

class Timedate1Interface: public QDBusAbstractInterface

{

Q_OBJECT

Q_PROPERTY(bool CanNTP READ CanNTP)

Q_PROPERTY(bool LocalRTC READ LocalRTC)

Q_PROPERTY(bool NTP READ NTP)

Q_PROPERTY(bool NTPSynchronized READ NTPSynchronized)

Q_PROPERTY(qulonglong RTCTimeUSec READ RTCTimeUSec)

Q_PROPERTY(qulonglong TimeUSec READ TimeUSec)

Q_PROPERTY(QString Timezone READ Timezone)

public:

explicit Timedate1Interface(QObject *parent = nullptr);

bool CanNTP() const;

bool LocalRTC() const;

bool NTP() const;

bool NTPSynchronized() const;

qulonglong RTCTimeUSec() const;

qulonglong TimeUSec() const;

QString Timezone() const;

void SetLocalRTC(bool localRTC, bool fixSystem, bool userInteraction);

void SetNTP(bool useNTP, bool userInteraction);

void SetTime(qlonglong usecUTC, bool relative, bool userInteraction);

void SetTimezone(const QString &timezone, bool userInteraction);

};

#endif // TIMEDATE1SERVICE_H

cpp:

#include "timedate1service.h"

Timedate1Interface::Timedate1Interface(QObject *parent)

: QDBusAbstractInterface("org.freedesktop.timedate1", "/org/freedesktop/timedate1",

"org.freedesktop.timedate1", QDBusConnection::systemBus(), parent)

{

}

bool Timedate1Interface::CanNTP() const

{

return qvariant_cast(property("CanNTP"));

}

bool Timedate1Interface::LocalRTC() const

{

return qvariant_cast(property("LocalRTC"));

}

bool Timedate1Interface::NTP() const

{

return qvariant_cast(property("NTP"));

}

bool Timedate1Interface::NTPSynchronized() const

{

return qvariant_cast(property("NTPSynchronized"));

}

qulonglong Timedate1Interface::RTCTimeUSec() const

{

return qvariant_cast(property("RTCTimeUSec"));

}

qulonglong Timedate1Interface::TimeUSec() const

{

return qvariant_cast(property("TimeUSec"));

}

QString Timedate1Interface::Timezone() const

{

return qvariant_cast(property("Timezone"));

}

void Timedate1Interface::SetLocalRTC(bool localRTC, bool fixSystem, bool userInteraction)

{

call("SetLocalRTC", localRTC, fixSystem, userInteraction);

}

void Timedate1Interface::SetNTP(bool useNTP, bool userInteraction)

{

call("SetNTP", useNTP, userInteraction);

}

void Timedate1Interface::SetTime(qlonglong usecUTC, bool relative, bool userInteraction)

{

call("SetTime", usecUTC, relative , userInteraction);

}

void Timedate1Interface::SetTimezone(const QString &timezone, bool userInteraction)

{

call("SetTimezone", timezone, userInteraction);

}

如果觉得《qt linux 修改系统时间 在Linux上使用QT设置系统时钟》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。