首页 PyQt5视频教程 PyQt5 QLineEdit文本编辑控件API大全和使用演示
pay pay

PyQt5 QLineEdit文本编辑控件API大全和使用演示

日期: 七月 2, 2023, 2:52 p.m.
栏目: PyQt5视频教程
阅读: 62
作者: Python自学网-村长

摘要: QLineEdit是Qt中常用的文本编辑控件,可以用于单行文本的输入和显示。QLineEdit提供了丰富的API,可以实现对文本的编辑、验证、格式化、自动完成等功能,下面是QLineEdit的常用API以及使用演示:

QLineEdit是Qt中常用的文本编辑控件,可以用于单行文本的输入和显示。QLineEdit提供了丰富的API,可以实现对文本的编辑、验证、格式化、自动完成等功能,下面是QLineEdit的常用API以及使用演示:

1.setText()方法

setText()方法用于设置QLineEdit的文本内容,语法为:

lineEdit.setText(text)

其中,text为需要设置的文本内容。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中的文本将被设置为“Hello World!”。

2.text()方法

text()方法用于获取QLineEdit中的文本内容,语法为:

text = lineEdit.text()

其中,text为获取到的文本内容。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()

# 获取QLineEdit中的文本内容
text = lineEdit.text()
print(text)

app.exec_()

运行后,输出结果为“Hello World!”。

3.clear()方法

clear()方法用于清除QLineEdit中的文本内容,语法为:

lineEdit.clear()

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()

# 清除QLineEdit中的文本内容
lineEdit.clear()

app.exec_()

运行后,QLineEdit中的文本将被清除。

4.setMaxLength()方法

setMaxLength()方法用于设置QLineEdit中可输入的最大字符数,语法为:

lineEdit.setMaxLength(length)

其中,length为可输入的最大字符数。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setMaxLength(10)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中最多可输入10个字符。

5.setReadOnly()方法

setReadOnly()方法用于设置QLineEdit为只读模式,禁止用户编辑文本内容,语法为:

lineEdit.setReadOnly(True)

其中,True表示只读模式,False表示可编辑模式。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")
lineEdit.setReadOnly(True)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit将无法编辑。

6.setPlaceholderText()方法

setPlaceholderText()方法用于设置QLineEdit中的占位符文本,当QLineEdit为空时,会显示占位符文本,语法为

lineEdit.setPlaceholderText(text)

其中,text为需要设置的占位符文本。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setPlaceholderText("Please input something...")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中没有文本时,会显示占位符文本“Please input something...”。

7.setInputMask()方法

setInputMask()方法用于设置QLineEdit中的字符掩码,可以限制用户输入的字符格式,语法为:

lineEdit.setInputMask(mask)

其中,mask为字符掩码,具体格式参考前面关于setInputMask()的详细讲解。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setInputMask("+99 9999 9999")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中只能输入格式为“+99 9999 9999”的字符。

8.setValidator()方法

setValidator()方法用于设置QLineEdit中的验证器,可以限制用户输入的字符范围或格式,语法为:

lineEdit.setValidator(validator)

其中,validator为验证器对象,可以使用QIntValidator、QDoubleValidator、QRegExpValidator等Qt提供的验证器类,也可以自定义验证器类。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout, QIntValidator

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
validator = QIntValidator()
validator.setRange(0, 100)
lineEdit.setValidator(validator)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中只能输入0~100之间的整数。

9.cursorPosition()方法

cursorPosition()方法用于获取QLineEdit中当前光标的位置,语法为:

pos = lineEdit.cursorPosition()

其中,pos为当前光标的位置,从0开始计数。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")
lineEdit.setCursorPosition(6)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
# 获取当前光标的位置
pos = lineEdit.cursorPosition()
print(pos)

app.exec_()

运行后,输出结果为6。

10.setCursorPosition()方法

setCursorPosition()方法用于设置QLineEdit中光标的位置,语法为:

lineEdit.setCursorPosition(pos)

其中,pos为需要设置的光标位置,从0开始计数。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")
lineEdit.setCursorPosition(6)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()

# 将光标设置到第一个字符处
lineEdit.setCursorPosition(0)

app.exec_()

运行后,QLineEdit中的光标会被设置到第一个字符处。

11.selectedText()方法

selectedText()方法用于获取QLineEdit中当前选中的文本,语法为:

text = lineEdit.selectedText()

其中,text为当前选中的文本。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")
lineEdit.setSelection(6, 11)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()

# 获取当前选中的文本
text = lineEdit.selectedText()
print(text)

app.exec_()

运行后,输出结果为“World”。

12.setTextMargins()方法

setTextMargins()方法用于设置QLineEdit中文本的边距,语法为:

lineEdit.setTextMargins(left, top, right, bottom)

其中,left、top、right、bottom为四个方向的边距大小,单位为像素。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setTextMargins(10, 10, 10, 10)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中的文本会与四周都留有10像素的边距。

13.setMaxLength()方法

setMaxLength()方法用于设置QLineEdit中输入的最大长度,语法为:

lineEdit.setMaxLength(length)

其中,length为输入的最大长度。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setMaxLength(10)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中输入的文本长度不能超过10个字符。

14.undo()方法

undo()方法用于撤销QLineEdit中的上一次操作,语法为:

lineEdit.undo()

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")
lineEdit.setCursorPosition(6)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()

# 撤销上一次操作
lineEdit.undo()

app.exec_()

运行后,QLineEdit中的文本会被撤销到上一次操作之前的状态。

15.redo()方法

redo()方法用于恢复QLineEdit中的上一次撤销操作,语法为:

lineEdit.redo()

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")
lineEdit.setCursorPosition(6)
lineEdit.undo()

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()

# 恢复上一次撤销操作
lineEdit.redo()

app.exec_()

运行后,QLineEdit中的文本会被恢复到上一次撤销操作之后的状态。

16.paste()方法

paste()方法用于将剪贴板中的内容粘贴到QLineEdit中,语法为:

lineEdit.paste()

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout, QPushButton

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
button = QPushButton("粘贴")
button.clicked.connect(lineEdit.paste)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
layout.addWidget(button)
window.setLayout(layout)

window.show()
app.exec_()

运行后,点击按钮后,剪贴板中的内容会被粘贴到QLineEdit中。

17.setPlaceholderText()方法

setPlaceholderText()方法用于在QLineEdit中设置提示文本,语法为:

lineEdit.setPlaceholderText(text)

其中,text为提示文本。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setPlaceholderText("请输入文本")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,在QLineEdit中还未输入文本时,会显示提示文本“请输入文本”。

18.setReadOnly()方法

setReadOnly()方法用于设置QLineEdit中是否只读,语法为:

lineEdit.setReadOnly(enabled)

其中,enabled为True表示只读,False表示可编辑。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")
lineEdit.setReadOnly(True)

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中的文本不能编辑。

19.setInputMask()方法

setInputMask()方法用于设置QLineEdit中输入的掩码,语法为:

lineEdit.setInputMask(mask)

其中,mask为掩码。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setInputMask("+99 99 9999 9999")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中输入的内容会按照掩码的格式进行限制。

20.setText()方法

setText()方法用于设置QLineEdit中的文本内容,语法为:

lineEdit.setText(text)

其中,text为要设置的文本内容。

演示:

from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout

app = QApplication([])
window = QWidget()

lineEdit = QLineEdit()
lineEdit.setText("Hello World!")

layout = QVBoxLayout()
layout.addWidget(lineEdit)
window.setLayout(layout)

window.show()
app.exec_()

运行后,QLineEdit中的文本会被设置为“Hello World!”。

以上就是QLineEdit文本编辑的API大全介绍及演示。

原创视频,版权所有,未经允许,切勿转载,违者必究!
回顶部