我正在用 QML 开发一个截图应用程序,我希望利用Unity 7 通知,类似于 Rhythmbox 在通知用户新歌曲已开始或音量改变时使用的方式。
有这个 API 吗?一个小的编码示例会很有帮助。
答案1
据我所知,不存在可以libnotify
从 QML 组件调用的此类 API。
为了避免创建 C++ 插件只是为了获取桌面应用程序的通知,我会使用吡啶硫酮调用一个小型的 Python 模块来完成这项工作:
先决条件:
安装 pyotherside:sudo ap-get install pyotherside
首先是 QML:
import QtQuick 2.0
import Ubuntu.Components 1.1
import io.thp.pyotherside 1.2
Rectangle {
width: 200
height: 200
Button {
text: "press"
anchors.centerIn: parent
onClicked: {
py.call('notify.pressme', [], function() {});
}
}
Python {
id: py
Component.onCompleted: {
addImportPath(Qt.resolvedUrl('.'));
importModule('notify', function() {});
}
}
}
以及 Python 代码(保存在同一目录中),文件名为notify.py
:
#!/usr/bin/env python3
import subprocess
def pressme():
subprocess.call(["notify-send", "hello", "world"])
按下 QML 按钮后,您将收到如下通知:
请阅读通知发送手册页以获得更多选择。