通常のQLineEditフィールドでは発生しないのと同じように、QScintillaウィジェットでコードを編集するときにアプリケーションのキーボードショートカットがトリガーされないようにしたいと思います。
以下の実行可能なサンプルコードでは、スペースバーがショートカットとして設定されているため、QScintillaウィジェットに空白を入力することはできませんが、QLineEditでは正しく機能します。
QScintillaがキーボード入力を適切に取得していないことが関係しているのではないかと思います(文字を入力できるので、明らかにそうですが)。
import sys,os
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import Qsci
class MyWidget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.butt = QPushButton("button!!")
self.act = QAction("new act",self)
self.act.setShortcut(QKeySequence(Qt.Key_Space))
self.act.triggered.connect(tjosan)
self.butt.clicked.connect(self.act.trigger)
self.sci = Qsci.QsciScintilla()
vbox = QVBoxLayout()
vbox.addWidget(self.sci)
vbox.addWidget(QLineEdit())
vbox.addWidget(self.butt)
self.setLayout(vbox)
self.addAction(self.act)
def tjosan():
print "action !!!"
if __name__ == "__main__":
app = QApplication(sys.argv)
widg = MyWidget()
widg.show()
sys.exit(app.exec_())