2

現在、私は D-Bus インターフェイスを備えた KDE Plasma/Wallpaper プラグインを開発しています (小さな学習プロジェクト)。私はマルチモニターをセットアップしており、各 D-Bus Plasma/Wallpaper インスタンスを個別に (異なるモニターで、または個別の KDE アクティビティで実行して) 対処できるようにしたいと考えています。プラグインの各インスタンスの名前 (つまり、「com.example.prettydesktop.wlp-」+unique_screen_id)。ただし、PyKDE Wallpaperから画面 ID を取得する方法が見つかりませんでした。これはQWidgetサブクラスではないため、QDesktopWidget.screenNumberメソッドを使用できないためです。

class DbusWlp(Wallpaper):
    def __init__(self, parent, args=None):
        Wallpaper.__init__(self, parent)

    # Plasmoid init code should go here
    def init(self, config):
        # also tried QX11Info but I think it's not relevant here
        print QtGui.QX11Info().appScreen() # always returns 0
        print QtGui.QApplication.desktop().screenNumber(self) # doesn't work because self is not QWidget subclass
        print QtGui.QApplication.desktop().isVirtualDesktop() # returns True just in case

主な質問は次のとおりです。どのスクリーン プラズマ プラグイン (壁紙またはプラズモイド) が実行されているかを特定する適切な方法は何ですか? そして、小さな追加の質問: D-Bus よりもクロスウィジェット通信を実装するためのより良い方法はありますか?
私はPyQTとPyKDEの両方にかなり慣れていないので、明らかなことを簡単に見逃してしまう可能性があり、どんな助けも大歓迎です。前もって感謝します!

PS: 英語が下手で申し訳ありません。母国語ではありません。

4

0 に答える 0