这是我的代码,当我单击空格键时,我想在行编辑中将光标向前移动到一个位置。
如何在行编辑中将光标向前移动一个位置。
下面是我的代码:
import sys
from pyface.qt import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.title = QtGui.QLabel('Title')
self.titleEdit = QtGui.QLineEdit()
self.btn = QtGui.QPushButton("spacebar")
self.btn.clicked.connect(self.spacebar)
grid = QtGui.QGridLayout()
grid.setSpacing(10)
grid.addWidget(self.title, 1, 0)
grid.addWidget(self.titleEdit, 1, 1)
grid.addWidget(self.btn, 2, 1)
self.setLayout(grid)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Review')
self.show()
def spacebar(self):
self.titleEdit.cursorForward(True,int=1)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
答案 0 :(得分:1)
在这些情况下,您必须发送QKeyEvent
并在发送焦点后建立焦点:
def spacebar(self):
key_event = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Space, QtCore.Qt.NoModifier, " ")
QtCore.QCoreApplication.sendEvent(self.titleEdit, key_event)
QtCore.QTimer.singleShot(0, self.titleEdit.setFocus)