我遇到QLineEdit问题,如果我在代码中启用了keyPressEvent,那么我无法在QLineEdit中输入任何内容。
class SearchBox(gui.QLineEdit):
def __init__(self, parent=None):
super(SearchBox, self).__init__(parent)
self.setWindowTitle("Explorer")
self.setGeometry(500,500,400,40)
font = gui.QFont()
font.setPointSize(15)
self.setFont(font)
# if i disable this function then it works..
def keyPressEvent(self, event):
if event.key() == core.Qt.Key_Escape:
self.close()
if event.key() == core.Qt.Key_Enter:
print self.text()
self.close()
有人可以帮我这个.. 感谢。
答案 0 :(得分:2)
如果你没有调用基类的keyPressEvent
,它怎么知道某个键被按下了?
def keyPressEvent(self, event):
if event.key() == core.Qt.Key_Escape:
self.close()
if event.key() == core.Qt.Key_Enter:
print self.text()
self.close()
else:
super(SearchBox, self).keyPressEvent(event)
documentation中也提到了这一点:
如果重新实现此处理程序,则调用非常重要 如果你不对密钥采取行动,则为基类实现。