我正在尝试为基于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))
谢谢, 安德鲁
答案 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)
这个问题是由我在我的代码中过滤其他事件引起的。糟糕。