发送假的返回键按键到QPlainTextEdit

时间:2011-01-30 17:15:28

标签: python qt pyqt

我正在尝试为基于QPlainTextEdit的小部件编写一些单元测试,所以我需要向它发送假按键。

我可以成功发送普通的a-z键按下,但是当我尝试发送新行时,我的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 :(得分:0)

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

工作? (注意QtGui.QKeyEvent的额外参数。)

答案 1 :(得分:0)

“Return”放入QKeyEvent constructor's text参数应该可以解决问题。请检查此行是否适合您:

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

希望这有帮助,尊重

答案 2 :(得分:0)

这个问题是由我在我的代码中过滤其他事件引起的。糟糕。