Найти - Пользователи
Полная версия: Обработчик событий
Начало » GUI » Обработчик событий
1 2
Corban_Dallas
py.user.next и опять не то)
Распишу конкретней. Для виджета на основе QLineEdit необходимо назначить определённую реакцию только на клавишу enter, при нажати на все остальные клавиши, виджет должен вести себя стандартно. То есть, нажав на обычные клавиши, в поле qlineedit будет набираться текст, при нажатии ctrl+c выделенный текст скопируется в буффер, при нажатии home курсор вернётся в начало текста и т.д.. В ваших же примерах вы просто назначаете на enter один код, а на все остальные клавиши другой, набирать текст, и выполнять другие стандартные взаимодействия с qlineedit с клавиатуры - невозможно.
py.user.next
#!/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, при нажати на все остальные клавиши, виджет должен вести себя стандартно.
Corban_Dallas
py.user.next
super(CommandLine, self).keyPressEvent(event)
Вот! Эта строчка и была камнем преткновения. Благодарю, теперь работает так как и требовалось.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB