これはスタック オーバーフローに関する私の最初の投稿です。私はプロの開発者ではありません。小さな実験で問題が発生した場合、それは常にかなり単純であり、通常は回答された質問の中から解決策を見つけます。今回は私の捜索がうまくいかなかったので、私の無知を公にすることになると思います...
mate-panel 用の Python アプレットの開発に興味があります。ここSOを含め、Web上で多くの例を見つけました。しかし、私が見つけた例のどれにも、コードが何をするかを理解するのに十分なコメントが付いていません。さらに、それらのいくつかを実行しようとしましたが、それらを機能させることができず、メカニズムを知らずにトラブルシューティングするのは困難です. これが私がこれまでに見つけたものです:
- この質問は、有望に思われるいくつかのドキュメントにリンクしていますが、リンクは現在死んでいるようです。
- MATE Universityと呼ばれる github リポジトリは、あらゆる能力のプログラマーをターゲットにすることを約束しています - 残念ながら、コメントされていない最小限のコードしか含まれていません。関連する「ドキュメント」へのリンクも無効になっています。全体として、それは放棄されたプロジェクトのように見えます (私の印象は、それがレガシー アーカイブにあるという事実によって確認されます)。
- MATE wikiが最適な場所のように思えますが、ここでもコメントなしの例しかありません。
また、コードのトラブルシューティングを行っている人々によるフォーラムの質問もいくつか見つけましたが、どれもあまり役に立ちませんでした。
理想的には、誰かが参考になる情報を教えていただければ幸いです。または、誰かが wiki の例に関する私の質問に答えてくれれば、とてもありがたいです。
参考までに、Python でのアプレットのコードを次に示します。
#!/usr/bin/env python
# this code is based on example appet by Vincent Untz for GNOME Panel 3
# https://git.gnome.org/browse/gnome-panel/commit/?id=5ad4d9e
# ensure we are using Gtk 2, not Gtk3
# this will print a warning but everything should work
import gi
gi.require_version("Gtk", "2.0")
from gi.repository import Gtk
from gi.repository import MatePanelApplet
def applet_fill(applet):
# you can use this path with gio/gsettings
settings_path = applet.get_preferences_path()
label = Gtk.Label("My MATE applet in Python")
applet.add(label)
applet.show_all()
def applet_factory(applet, iid, data):
if iid != "TestApplet":
return False
applet_fill(applet)
return True
MatePanelApplet.Applet.factory_main("TestAppletFactory", True,
MatePanelApplet.Applet.__gtype__,
applet_factory, None)
これに関する私の質問は次のとおりです。
- 私が見たすべての例には、「applet_fill」と「applet_factory」と呼ばれる少なくとも 2 つの関数が含まれています。「applet_fill」が Gtk コンテナーのように動作するアプレット オブジェクトを受け取り、アプレットをウィジェットで埋めるコードがここにあることは簡単にわかります。それだけですか、それとも他にもありますか?
- 「applet_factory」の役割は?戻り値の意味は何ですか? 「iid」引数とは何ですか? 「データ」は辞書ですか?「data」は、以下の「factory_main」関数の最後の引数である可能性があると思いますが、正しいですか?
- そういえば、「factory_main」とは何ですか?その引数は何ですか? アプレットを実行する関数だと思いますが、そうですか?その上で help() を呼び出してみましたが、出力は憂鬱なほど役に立ちませんでした。
python スクリプトのほかに、ウィキは 2 つの追加ファイルも「導入」します。
[Applet Factory]
Id=TestAppletFactory
InProcess=false
Location=/home/user/applet/testapplet.py
Name=Test Applet Factory
Description=A MATE Python Applet example factory
[TestApplet]
Name=Test
Description=A MATE Python Applet example
Icon=mate
MateComponentId=OAFIID:MATE_TestApplet;
と:
[D-BUS Service]
Name=org.mate.panel.applet.TestAppletFactory
Exec=/home/user/applet/testapplet.py
ここでの私の質問は、恥ずかしいほど基本的なものです。これらのファイルの機能とその内容は何ですか?
質問があまりにも標準以下ではないことを願っています。どんな助けでも大歓迎です。