私はPyQtでテキストエディタを作成しています。私は完全に自分自身ですべてのキーボード入力を処理したいので、私はそうのように私のQTextEdit
クラスでイベントハンドラを再実装しました:PyQtアプリケーション内でOption/Altキーを完全に制御する方法はありますか?
class GorgTextEdit(QtGui.QTextEdit):
# customized QTextEdit class with reimplemented event handles
gorg_key_press_signal = pyqtSignal(str, int, QtGui.QWidget)
gorg_key_release_signal = pyqtSignal(str, int, QtGui.QWidget)
def __init__(self):
super(GorgTextEdit, self).__init__()
def keyPressEvent(self, e):
self.gorg_key_press_signal.emit("p", e.key(), self)
def keyReleaseEvent(self, e):
self.gorg_key_release_signal.emit("r", e.key(), self)
は基本的に私が直接GorgTextEdit
の全てのキーイベントからの信号を送信していますCommander
オブジェクトはキーシーケンスに基づいて関数を呼び出し、その一部はそのメソッドを直接呼び出すことによってGorgTextEdit
オブジェクトにプレーンテキストを挿入します。プレーンテキストを挿入し、Commander
オブジェクトによって呼び出されたシフトキーと削除キーを処理するためのコマンドを記述しました。宛先ウィジェット(元のキーシーケンスのソース)が引数として渡されました。
問題は、オプションキーを押したままテキスト文字を押すたびに、Commanderからのアクションを待つのではなく、すぐに秘密のユニコード文字を挿入することです。基本的に私のオプションキーをMetaにマッピングしたいのですが、私はM-xをEmacsスタイルのコマンド呼び出しとして実装したいと考えています。これは、オプションキーがOSXにコードをバイパスさせ、任意のテキストウィンドウに許可なくフォーカスを当てて文字を直接挿入する場合には機能しません。今すぐM-x
(オプションx)には、近似文字である≈
が挿入されています。
これらのOSXテキスト挿入機能をPython内で上書きする方法はありますか?