web-dev-qa-db-ja.com

Unity7通知を利用するQMLプログラムを取得するにはどうすればよいですか?使用できるAPIはありますか?

私はQMLでスクリーンショットアプリケーションを開発していますが、Rhythmboxがユーザーに新しい曲の開始を通知するとき、または音量が変更されたときに使用するものと同様に、 nity 7通知 を利用したいと思います。

このためのAPIはありますか?小さなコーディング例が役立ちます。

6
Async

私の知る限り、QMLコンポーネントからlibnotifyを呼び出すようなAPIは存在しません。

デスクトップアプリケーションの通知を取得するためだけにC++プラグインを作成しないようにするには、 pyotherside を使用して小さな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 code(両方を同じディレクトリに保持))、notify.pyという名前のファイル:

#!/usr/bin/env python3

import subprocess

def pressme():
    subprocess.call(["notify-send", "hello", "world"])

QMLボタンを押すと、次のような通知が表示されます。

enter image description here

さらなるオプションについては notify-send man page を読んでください。

2
Sylvain Pineau