Отправить поддельные нажатия клавиш возврата в QPlainTextEdit - PullRequest
0 голосов
/ 30 января 2011

Я пытаюсь написать несколько юнит-тестов для моего виджета на основе QPlainTextEdit, поэтому мне нужно отправить на него ложные нажатия клавиш.

Я могу успешно отправить обычные нажатия клавиш az, но когда я пытаюсь отправитьновая строка мой обработчик keyPressEvent не получает нажатие клавиши.

В приведенном ниже коде первый sendEvent работает нормально, а второй - нет.Где может быть проблема?

for char in "import django":
    global_objects.app.sendEvent(editor, QtGui.QKeyEvent(QtCore.QEvent.KeyPress, ord(char), QtCore.Qt.NoModifier, char))
global_objects.app.sendEvent(editor, QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Return, QtCore.Qt.NoModifier))

Спасибо, Андрей

Ответы [ 3 ]

0 голосов
/ 31 января 2011

Помещение слова "Return" в параметр конструктора QKeyEvent должно помочь. Пожалуйста, проверьте, будет ли эта линия работать для вас:

QtCore.QCoreApplication.sendEvent(self.editor, 
                                  QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Return, QtCore.Qt.NoModifier, 'Return'))        

надеюсь, это поможет, с уважением

0 голосов
/ 29 ноября 2011

Эта проблема была вызвана тем, что я фильтровал событие в другом месте моего кода.К сожалению.

0 голосов
/ 31 января 2011

Будет ли

global_objects.app.sendEvent(editor,
    QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Return,
    QtCore.Qt.NoModifier, '\n'))

работать?(Обратите внимание на дополнительный аргумент для QtGui.QKeyEvent.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...