mieki256's diary



2016/11/09(水) [n年前の日記]

#2 [python] PySideのQKeySequenceについてメモ

PySideでメインウインドウにメニューバーをつけた際、各メニューに、setShortcut() を使って、ショートカットキーを割り当てたりすると思うのだけど。
    zoomactual_action = view_menu.addAction("Zoom &1:1")
    zoomactual_action.setShortcut("Ctrl+1")
    zoomactual_action.triggered.connect(self.zoom_actual_pixels)

今頃になって、 _QKeySequence なるものがあると知ったのでメモ。

QKeySequence には、あらかじめ決まったショートカットキーが定義されてたりするようで、ソレを使うと分かりやすく…なるのかな? どうかな? どうなんだろう。かえって分かりづらくなったりしないか。どうなんだ。そのへん判断できないけど、とりあえずそういう指定もできるようですね、とメモ。
    open_action = QAction("&Open", self)
    open_action.setShortcut(QKeySequence(QKeySequence.Open))
    open_action.setStatusTip("Open Image File")
    open_action.triggered.connect(self.show_open_dialog)
    file_menu.addAction(open_action)

    ...

    zoomin_action = view_menu.addAction("Zoom &In")
    zoomin_action.setShortcut(QKeySequence(QKeySequence.ZoomIn))
    zoomin_action.triggered.connect(self.zoom_in)

    zoomout_action = view_menu.addAction("Zoom &Out")
    zoomout_action.setShortcut(QKeySequence(QKeySequence.ZoomOut))
    zoomout_action.triggered.connect(self.zoom_out)

ただ、一部、シンボルはあるけど中身が定義されてない組み合わせもあるようで。例えば、QKeySequence.SaveAs には何も割り当てられていなかった。

_QKeySequence - PySide v1.0.7 documentation を眺めた感じでは、SaveAs は、Mac OS X と GNOME なら Ctrl+Shift+S が割り当てられてるけど、Windows では何も割り当てられてないっぽい。このキーの組み合わせは、OS側で何かしらに使ってたりするのだろうか? ちょっとよく分からない。

他にも、"Ctrl+S" といった記述の他に、Qt.CTRL + Qt.Key_S、といった記述も可能らしい。
    save_as_action = QAction("Save &As...", self)
    save_as_action.setShortcut(QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_S))
    save_as_action.setStatusTip("Save Canvas Image")
    save_as_action.triggered.connect(self.show_save_dialog)
    file_menu.addAction(save_as_action)

以上です。

過去ログ表示

Prev - 2016/11 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project