Python GUI编程网 > PyQt5控件_PyQt5控件方法大全 > QLineEdit设置光标位置控制
python教程

QLineEdit设置光标位置控制

发布博客:2022年12月2日 07:19
阅读:85
作者:Python GUI编程网

QLineEdit设置光标位置控制在学习QLineEdit中还是比较常见的,但是不用怕,在QLineEdit中还是比较简单的,通过对光标位置控制能对产品的特殊需要提供解决方案。

QLineEdit设置光标位置控制在学习QLineEdit中还是比较常见的,但是不用怕,在QLineEdit中还是比较简单的,通过对光标位置控制能对产品的特殊需要提供解决方案。

这里使用方法setCursorPosition()来实现,下面是其构造方法。

def setCursorPosition(self, p_int): # real signature unknown; restored from __doc__
    """ setCursorPosition(self, int) """
    pass

通过构造可以看到,内部可以传入一个整形数字,这就是光标的位置,比如传入数字2,表示光标会出现在第二个字符后面,还可以通过方法cursorPosition()来获取光标位置。

led.setCursorPosition(2)  # 设置光标位置在第二个字符后
print(led.cursorPosition())  # 获取光标位置

除此之外还有很多方法可以控制光标,下面不一一讲解了,请看注释:

from PyQt5.Qt import *
 import sys
 
 
 class Window(QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle("QLineEdit设置光标位置控制 - PyQt5中文网")
         self.resize(600, 500)
         self.func_list()
 
     def func_list(self):
         self.func()
 
     def func(self):
         led = QLineEdit('QLineEdit设置光标位置控制', self)
         led.resize(150, 45)
         led.move(100, 100)
 
         # 向左移动
         led.cursorBackward(True, 2)  # True带选中效果,选中2个字符
         # led.cursorBackward(False, 2)  # False不带选中效果
         # 向右移动
         led.cursorForward(True, 2)  # True带选中效果,选中2个字符
         # led.cursorForward(False, 2)  # False不带选中效果
         # 向左移动一个单词长度
         led.cursorWordBackward(True)  # True带选中效果
         led.cursorWordForward(False)  # False不带选中效果
         # 向右移动一个单词长度
         led.cursorWordBackward(True)  # True带选中效果
         led.cursorWordForward(False)  # False不带选中效果
         # 移动到行首
         led.home(True)  # True带选中效果
         led.home(False)  # False不带选中效果
         # 移动到行尾
         led.end(True)  # True带选中效果
         led.end(False)  # False不带选中效果
         # 设置光标位置
         led.setCursorPosition(2)  # 设置光标位置在第二个字符后
         print(led.cursorPosition())  # 获取光标位置
 
 
 if __name__ == '__main__':
     app = QApplication(sys.argv)
     window = Window()
 
     window.show()
     sys.exit(app.exec_())