向QPlainTextEdit发送虚假的回车键按下事件
我正在为我的基于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
把单词 "Return" 放进 QKeyEvent 构造函数的文本 参数里应该就能解决问题。请检查一下这行代码是否对你有用:
QtCore.QCoreApplication.sendEvent(self.editor,
QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Return, QtCore.Qt.NoModifier, 'Return'))
希望这能帮到你,祝好
0
这样做
global_objects.app.sendEvent(editor,
QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Return,
QtCore.Qt.NoModifier, '\n'))
可以吗?(注意这里多了一个参数给QtGui.QKeyEvent
。)
0
这个问题是因为我在代码的其他地方对事件进行了过滤。哎呀。