- くだすれPython(超初心者用) その25©2ch.net
104 :デフォルトの名無しさん[sage]:2014/11/26(水) 09:42:58.11 ID:nz5Is923 - PySideを触り始めたんですが、keyPressEventの処理がうまくいきません。
class Window(QtGui.QDialog): (略) _def keyPressEvent(self, event): __if event.key() == QtCore.Qt.Key_0: ___self.close() 上記のコードで、QTextEditを配置しその上にフォーカスがあると"0"を押してもQTextEditに0が入力されるだけで親にイベントが伝搬していないようです。 今のところkeyPressEventを再定義したQTextEditの継承クラスをわざわざ定義していますが、特定のキーイベントを親に流したいだけなので冗長に思います。 特定のキーイベントだけ(あるいは全部)親に渡すような簡単な方法があれば教えてください。
| - くだすれPython(超初心者用) その25©2ch.net
107 :デフォルトの名無しさん[sage]:2014/11/26(水) 11:42:48.43 ID:nz5Is923 - >>105
どう調べればいいものか困っていたのでヒント助かります。親ウィンドウの定義内で (__init__内) self.edit = QtGui.QTextEdit() self.edit.keyPressEvent = self.keyPressEvent (略) def keyPressEvent(self,event): _this_widget = self.focusWidget() _if isinstance(this_widget, QtGui.QTextEdit): __print('unko') __QtGui.QTextEdit.keyPressEvent(this_widget, event) でとりあえずQTextEdit内の入力を妨げることなくキーイベントに追加処理をあてられるようになりました。 やり方がアレな気がするので他の人のコードを見ながら改良してみます。ありがとうございました。 >>106 右も左もさっぱりなので時間みながら地道にgithub覗くことにします。
|
|