web-dev-qa-db-ja.com

PyGTK-Unityグローバルメニューのgtk.Menuからのイベント

PyGTKで記述されたGUIアプリケーションがあり、アプリケーションメニューからキー押下/リリースイベントを読み取る必要があります。

たとえば、Shiftキーを押しながらメニュー項目をクリックするときは、他のことをしてから通常の操作を行います。 gtk.Menuはこのシグナルを実装し、Unityがメニューをパネルに移動するまで(メニューからイベントがなくなるまで)、アプリケーションで非常にうまく機能します。 UnityのためにGUIを再設計するつもりはありません。もっと良い方法があることを願っています。ヒントを事前に感謝します。

2
GdH

PyGTKは、最近の buntu Apps Developer Week でごく最近議論されました。

要約すると、PyGTKは事実上廃止され、pyGIが採用されています。これは、Unity、Gnome3、および今後のGTK3によるものです。

したがって、アプリケーションを(Ubuntuだけでなく)新しいプラットフォームでサポートしたい場合は、コードを少し作り直して、pyGTKではなくpyGIライブラリに対してコンパイルする必要があるようです。

1
fossfreedom

わかりました、可能な回避策があります。グローバルメニューがgtk.MenuBarの後に続くことは明らかなので、gtk.MenuBarからメニューを削除し、gtk.EventBox、gtk.Label、gtk.Menu.popupに基づいて独自のシンプルなメニューバーを作成しました。これで、アプリウィンドウにメニューが表示され、すべてが期待どおりに機能します。これは小さなウィンドウのアプリなので、この場合、グローバルメニューはとにかく意味がありません。

1
GdH