如何使用pyqt4在qline编辑中使用空格键

时间:2018-11-12 12:16:12

标签: python python-2.7 pyqt pyqt4

这是我的代码,当我单击空格键时,我想在行编辑中将光标向前移动到一个位置。

如何在行编辑中将光标向前移动一个位置。

下面是我的代码:

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()

1 个答案:

答案 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)