所以我正在尝试在我的程序中向QTermWidget发送模拟返回键。我在Python / Qt4和C ++ / Qt4中都有这个版本。在这一点上,我真的不在乎它是否用任何一种语言编写,因为我对C ++语法有很好的把握。这就是说任何一种语言的答案都是天赐之物。
到目前为止,我已经尝试了
QTest.KeyClick(self.Terminal, Qt.KeyReturn, Qt.NoModifier) // syntax is python here
和
key_press = QKeyEvent(QEvent.KeyPress, Qt.Key_Return, Qt.NoModifier)
self.Terminal.keyPressEvent(key_press)
key_release = QKeyEvent(QEvent.KeyRelease, Qt.Key_Return, Qt.NoModifier)
self.Terminal.keyPressEvent(key_release)
以及其他一些我现在还不能完全记住的事情。
感谢您的帮助。
答案 0 :(得分:0)
您是否在C ++中尝试过这个?
QKeyEvent *ev = new QKeyEvent( QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier );
myApp->postEvent( receivingWidget, ev );
答案 1 :(得分:0)
这对我有用,也应该与其他小部件一起使用。
import sys
from PyQt4 import QtCore, QtGui, Qt
from ChildWindow import ChildWindow
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
QtCore.QTimer.singleShot(500, self.showChildWindow)
self.textEdit = QtGui.QTextEdit(self)
self.textEdit.resize(100, 100)
def showChildWindow(self):
QtGui.QApplication.sendEvent(self.textEdit, QtGui.QKeyEvent(QtGui.QKeyEvent.KeyPress, QtCore.Qt.Key_A, QtCore.Qt.NoModifier, "hello"))
QtGui.QApplication.sendEvent(self.textEdit, QtGui.QKeyEvent(QtGui.QKeyEvent.KeyPress, QtCore.Qt.Key_Return, QtCore.Qt.NoModifier))
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MainWindow()
myapp.show()
sys.exit(app.exec_())