Форум сайта python.su
py.user.next и опять не то)
Распишу конкретней. Для виджета на основе QLineEdit необходимо назначить определённую реакцию только на клавишу enter, при нажати на все остальные клавиши, виджет должен вести себя стандартно. То есть, нажав на обычные клавиши, в поле qlineedit будет набираться текст, при нажатии ctrl+c выделенный текст скопируется в буффер, при нажатии home курсор вернётся в начало текста и т.д.. В ваших же примерах вы просто назначаете на enter один код, а на все остальные клавиши другой, набирать текст, и выполнять другие стандартные взаимодействия с qlineedit с клавиатуры - невозможно.
Офлайн
#!/usr/bin/env python3 import sys from PyQt4 import QtGui, QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.cl = CommandLine(self) self.setGeometry(500, 500, 200, 100) self.setWindowTitle('LineEdit') self.show() class CommandLine(QtGui.QLineEdit): def __init__(self, parent=None): super(CommandLine, self).__init__(parent) def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_Return: self.setText('<enter>') else: super(CommandLine, self).keyPressEvent(event) def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main()
Corban_Dallas
Для виджета на основе QLineEdit необходимо назначить определённую реакцию только на клавишу enter, при нажати на все остальные клавиши, виджет должен вести себя стандартно.
Офлайн
py.user.nextВот! Эта строчка и была камнем преткновения. Благодарю, теперь работает так как и требовалось.
super(CommandLine, self).keyPressEvent(event)
Офлайн