Je développe une application de capture d'écran en QML et je souhaite utiliser notifications Unity 7 , similaire à celle utilisée par Rhythmbox pour notifier à un utilisateur le lancement d'une nouvelle chanson ou la modification du volume.
Une API existe-t-elle pour cela? Un petit exemple de codage serait utile.
Autant que je sache, aucune API de ce type n'existe pour appeler libnotify
à partir d'un composant QML.
Pour éviter de créer un plug-in C++ uniquement pour recevoir des notifications pour une application de bureau, je voudrais utiliser pyotherside pour appeler un petit module python pour effectuer le travail:
Prérequis :
Installez pyotherside: Sudo ap-get install pyotherside
D'abord le 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() {});
}
}
}
Et le code python (conserver les deux dans le même répertoire), un fichier nommé notify.py
:
#!/usr/bin/env python3
import subprocess
def pressme():
subprocess.call(["notify-send", "hello", "world"])
Après avoir appuyé sur le bouton QML, vous recevrez une notification comme celle-ci:
Veuillez lire le page de manuel notify-send pour plus d'options.