如何使用pyqt4在qline edit中使用空格键

2024-04-27 04:04:00 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码,当我点击一个空格键按钮时,我想将光标向前移动到行编辑中的一个位置。你知道吗

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

下面是我的代码:

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

Tags: 代码importself编辑mainexampledefsys
1条回答
网友
1楼 · 发布于 2024-04-27 04:04:00

对于这些情况,您必须发送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)

相关问题 更多 >