3

Python の GTK3 と Cairo を、Cairo の出力を画面上に表示する最小限のプロット アプリケーションとして使用しようとしています。

典型的な使用法は、コマンドを実行すると、プロットが画面にポップアップ表示され、ファイルにも書き込まれます。理想的には「q」キーを押すだけでなく、一般的な Ctrlデフォルトの Alt-F4 に加えて -W と Ctrl-Q (実際にそれを定期的に使用している人はいますか?!?)。

また、ウィンドウ内の UI の乱雑さをできるだけ少なくしたいと考えています。理想的には、標準のウィンドウ サラウンドだけで、メニューやツールバーなどはありません。

それで...どうすれば「q」、「Ctrl-Q」などのキーバインディングをGtk.main_quita)煩雑なドロップダウンメニューバーを作成し、b)Gtk.UIManagerPython Gtk + 3が焦点を当てているヘビーウェイトを通過することなくバインドできますかドキュメントはこちら: http://python-gtk-3-tutorial.readthedocs.org/en/latest/menus.html。これが可能であり、多くのコードを必要としないことを願っています (少なくとも、すべてのメニューをセットアップするほどではありません!) が、オンラインのどこにも例が見つかりません。間違った用語、GTK初心者です。

残念ながら、このような最小限のアクセラレータのセットアップに関するドキュメントはないようです。また、アクセラレータ キーを構成するコードは、GTK2 と 3 で大きく異なるようです...助けてくれてありがとう。

4

2 に答える 2

3

信号をメイン フレームに接続しWin.connect('key-press-event', self.on_key_function)、on_key_function (self、widget、event) で event.keyval の値を確認します。ハードコーディングが好きな場合、ESC は 65307 です。また、キーの組み合わせについては、event.state レポートのシフト、alt(meta) などif Gdk.ModifierType.CONTROL_MASK & event.state:do_something if ctrl is pressed があります。ウィンドウマネージャーによって消費される可能性がある、定義済みのキーの組み合わせをキャプチャしようとしないでください。優れたイントロスペクションを備えた IDE は非常に役立ちます。Gdk (以前にインポートされたもの) を記述するだけで、オートコンプリートにより多くの関数/クラスがポップアップ表示され、そのほとんどが一目瞭然の名前で表示されます。

于 2014-04-16T15:03:53.333 に答える