设置自动更换壁纸的DBUS接口
自动更换壁纸通过DBus调用com.deepin.daemon.Appearance服务的SetWallpaperSlideShow方法实现。
服务名:com.deepin.daemon.Appearance
地址:/com/deepin/daemon/Appearance
接口:com.deepin.daemon.Appearance
SetWallpaperSlideShow (String monitorName, String wallpaperSlideShow) ↦ ()
参数:
@monitorName 为显示器名字,如“HDMI-0”,显示器名称可从com.deepin.daemon.Display服务列表中/com/deepin/daemon/Display/Monitor_×(×表示编号)的com.deepin.daemon.Display.Monitor接口中的"Name"属性获取
@wallpaperSlideShow 为更换时间,取值如下
* "" //空字符,关闭
* "30" //30秒
* "60" //1分钟
* "300" //5分钟
* "600" //10分钟
* "900" //15分钟
* "1800" //30分钟
* "3600" //1小时
* "login" //登录时
* "wakeup" //唤醒时
Qt代码:
//服务
QString service = "com.deepin.daemon.Appearance";
QString path = "/com/deepin/daemon/Appearance";
QString interfaceName = "com.deepin.daemon.Appearance";
//dbus连接
QDBusInterface interface(service,path,interfaceName);
//调用方法
QString func = "SetWallpaperSlideShow";
QVariant monitorName = QVariant::fromValue(QString("HDMI-0")); //为HDMI-0屏幕设置自动更换壁纸
QVariant wallpaperSlideShow = QVariant::fromValue(QString("")); //关闭自动更换壁纸
interface.call(func,monitorName,wallpaperSlideShow);
QVariant wallpaperSlideShow = QVariant::fromValue(QString("30")); //设置每30秒自动更换壁纸
interface.call(func,monitorName,wallpaperSlideShow);
为HDMI-0屏幕设置每30秒自动更换壁纸
qdbus com.deepin.daemon.Appearance /com/deepin/daemon/Appearance com.deepin.daemon.Appearance.SetWallpaperSlideShow "HDMI-0" "30"
关闭HDMI-0屏幕的自动更换壁纸
qdbus com.deepin.daemon.Appearance /com/deepin/daemon/Appearance com.deepin.daemon.Appearance.SetWallpaperSlideShow "HDMI-0" ""