class QLineEdit#

The QLineEdit widget is a one-line text editor. More

Inheritance diagram of PySide6.QtWidgets.QLineEdit

概述#

属性#

方法#

虚方法#

槽函数#

信号#

注意

本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告诉我们。

详细描述#

../../_images/windows-lineedit.png

行编辑允许用户使用包括撤销和重做、剪切和粘贴以及拖放等有用的编辑功能,输入和编辑单行纯文本。

通过更改行编辑的 echoMode(),它还可以用作只写字段,例如密码输入。

QTextEdit 是一个相关的类,允许多行、富文本编辑。

文本约束#

使用 maxLength 来定义允许的最大文本长度。您可以使用 inputMasksetValidator() 进一步限制文本内容。

编辑文本#

您可以使用 setText()insert() 来更改文本。使用 text() 获取文本,并使用 displayText() 获取显示的文本(可能与实际文本不同,请参阅 EchoMode)。您可以使用 setSelection()selectAll() 选择文本,并可以使用 cut()copy()paste() 来剪切、复制和粘贴所选内容。要对齐文本,使用 setAlignment()

当文本发生更改时,会发出 textChanged 信号。当文本不是通过调用 setText 发生更改时,会发出 textEdited 信号。当光标移动时,会发出 cursorPositionChanged 信号。当选择 Return 或 Enter 键时,会发出 returnPressed 信号。

当文本编辑结束,无论是由于行编辑失去焦点还是选择了 Return/Enter,都会发出 editingFinished 信号。

如果行编辑在没有文本变化的情况下失去焦点,则不会发出 editingFinished 信号。

如果行编辑器设置了验证器,则当验证器返回QValidator::Acceptable时,才会发出 returnPressed() / editingFinished() 信号。

关于如何使用 QLineEdit 的多种方法,请参阅 行编辑示例,该示例还提供了一系列行编辑示例,显示了许多属性和验证器对用户提供的输入和输出效果。

设置框架#

默认情况下,QLineEdits遵循平台样式指南中指定的框架。您可以通过调用 setFrame(false) 关闭框架。

默认按键绑定#

下表描述了默认按键绑定。

注意

线编辑还提供上下文菜单(通常通过右击调用),显示以下编辑选项的一些内容。

键盘输入

动作

左箭头

将光标移动到字符左侧。

Shift+左箭头

将并选择文本移动到字符左侧。

右箭头

将光标移动到字符右侧。

Shift+右箭头

将并选择文本移动到字符右侧。

Home

将光标移动到行的开头。

End

将光标移动到行的末尾。

退格键

删除光标左侧的字符。

Ctrl+退格键

删除光标左侧的单词。

删除键

删除光标右侧的字符。

Ctrl+删除键

删除光标右侧的单词。

Ctrl+A

全选。

Ctrl+C

将选定的文本复制到剪贴板。

Ctrl+插入键

将选定的文本复制到剪贴板。

Ctrl+K

删除到行尾。

Ctrl+V

将剪贴板文本粘贴到行编辑器中。

Shift+插入键

将剪贴板文本粘贴到行编辑器中。

Ctrl+X

删除选定的文本并将其复制到剪贴板。

Shift+删除键

删除选定的文本并将其复制到剪贴板。

Ctrl+Z

撤销上一个操作。

Ctrl+Y

重做最后一个撤销的操作。

除有效字符以外的其他任何键盘输入都会将字符插入到行编辑器中。

class ActionPosition#

此枚举类型描述了行编辑应如何显示要添加的动作小部件。

常量

描述

QLineEdit.LeadingPosition

当使用布局方向 Qt::LeftToRight 时,小部件显示在文本的左侧;当使用 Qt::RightToLeft 时,分别显示在文本右侧。

QLineEdit.TrailingPosition

当使用布局方向 Qt::LeftToRight 时,小部件显示在文本的右侧;当使用 Qt::RightToLeft 时,分别显示在文本左侧。

class EchoMode#

此枚举类型描述了行编辑如何显示其内容。

常量

描述

QLineEdit.Normal

显示输入的字符。这是默认操作。

QLineEdit.NoEcho

不显示任何内容。这可能适合密码,其中即使是密码的长度也应保密。

QLineEdit.Password

显示平台依赖的密码掩码字符,而不是实际输入的字符。

QLineEdit.PasswordEchoOnEdit

仅在输入时显示字符。否则,显示字符与 Password 一样。

另请参阅

setEchoMode() echoMode()

注意

from __feature__ import true_property 被使用时可以直接使用属性,否则通过访问函数使用。

property acceptableInputᅟ: bool#

此属性表示输入是否满足 inputMask 和验证器。

默认情况下,此属性为 true

访问函数
property alignmentᅟ: Combination of Qt.AlignmentFlag#

此属性表示行编辑的对齐方式。

这里允许水平和垂直对齐,Qt::AlignJustify 将映射到 Qt::AlignLeft。

默认情况下,此属性包含 Qt::AlignLeft 和 Qt::AlignVCenter 的组合。

另请参阅

对齐

访问函数
property clearButtonEnabledᅟ: bool#

该属性定义了当线路编辑框非空时是否显示清理按钮。

如果启用,当线路编辑框包含文本时,将显示一个跟随的清理按钮。否则,线路编辑框将不显示清理按钮(默认行为)。

访问函数
属性 cursorMoveStyle: Qt CursorMoveStyle#

该属性定义了此线路编辑框中光标的移动方式。

当此属性设置为 Qt::VisualMoveStyle 时,线路编辑框将使用视觉移动方式。使用左箭头键将始终导致光标向左移动,而不考虑文本的方向。相同的行为也适用于右箭头键。

当属性设置为 Qt::LogicalMoveStyle(默认值)时,在从左到右(LTR)的文本块中,使用左箭头键将增加光标位置,而使用右箭头键将减少光标位置。如果文本块是从右到左(RTL),则行为相反。

访问函数
属性 cursorPosition: int#

该属性定义了此线路编辑框的当前光标位置。

设置光标位置会导致适当时的重绘。

默认情况下,此属性包含的值为 0。

访问函数
属性 displayText: str#

该属性定义了显示的文本。

如果 echoModeNormal ,则此方法返回的值与 text() 相同。如果 EchoModePasswordPasswordEchoOnEdit ,则返回平台相关的密码掩码字符字符串(例如“******”)。如果 EchoModeNoEcho ,则返回空字符串。

默认情况下,此属性包含一个空字符串。

访问函数
property dragEnabled: bool#

此属性表示在用户按下并移动鼠标到某些选定的文本上时,行编辑是否开始拖动。

默认情况下禁用拖动。

访问函数
property echoMode: QLineEdit.EchoMode#

此属性表示行编辑的回显模式。

回显模式决定了在行编辑器中输入的文本如何显示(或回显)给用户。

最常见的设置是 Normal ,其中用户输入的文本将原样显示。 QLineEdit 还支持阻止或隐藏输入文本的模式:这些包括 NoEchoPasswordPasswordEchoOnEdit

此设置的显示以及复制或拖动文本的能力可能会受到影响。

默认情况下,此属性设置为 Normal

另请参阅

EchoMode displayText()

访问函数
property frame: bool#

该属性表示线编辑是否以边框绘制自身。

如果启用(默认),线编辑将在边框内绘制自身。否则,线编辑将在没有边框的情况下绘制自身。

访问函数
property hasSelectedText: bool#

该属性表示是否存在选中的文本。

hasSelectedText() 返回 true 则表示用户已选中部分或全部文本,否则返回 false

默认情况下,此属性为 false

另请参阅

selectedText()

访问函数
property inputMask: str#

该属性表示验证输入掩码。

设置 QLineEdit 的验证掩码。除了掩码外,还可以使用验证器;请参阅 setValidator()。默认情况下为空字符串,表示不使用输入掩码。

要取消掩码并返回正常的 QLineEdit 操作,请传递空字符串。

输入掩码是一个输入模板字符串。它可以包含以下元素

掩码字符

定义在该位置认为有效的输入字符类别。

元字符

各种特殊含义(见下面细节)。

分隔符

所有其他字符被视为不可变的分隔符。

以下表格显示了可用于输入掩码的掩码和元字符。

掩码字符

含义

A

所需字母类别的字符,例如 A-Z,a-z。

a

允许但不是必需的字母类别的字符。

N

所需字母或数字类别的字符,例如 A-Z,a-z,0-9。

n

允许但不是必需的字母或数字类别的字符。

X

所需任何非空字符。

x

允许但不是必需的任何非空字符。

9

所需数字类别的字符,例如 0-9。

0

允许但不是必需的数字类别的字符。

D

所需数字类别大于零的字符,例如 1-9。

d

允许但不是必需的数字类别大于零的字符,例如 1-9。

#

允许的数字类别字符,或加号/减号不是必需的。

H

所需十六进制字符。A-F,a-f,0-9。

h

允许但不是必需的十六进制字符。

B

必须使用二进制字符。0-1。

b

二进制字符允许使用但不是必需的。

元字符

含义

>

所有随后的字母字符将被转换为大写。

<

所有随后的字母字符将被转换为小写。

!

关闭大小写转换。

;c

终止输入掩码并将空格字符设置为c。

[ ] { }

保留。

\

使用\来转义上述列出的特殊字符,以便将其用作分隔符。

创建或清除时,行编辑将填充输入掩码字符串的副本,其中已移除元字符,并将掩码字符替换为空格字符(默认为一个空格)。

设置输入掩码时,text() 方法将返回线编辑内容的修改副本,其中所有空白字符都已删除。未修改的内容可以使用 displayText() 读取。

hasAcceptableInput() 方法返回false,如果线编辑的当前内容不满足输入掩码的要求。

示例

掩码

备注

000.000.000.000;_

IP地址;空白将表示为_。

HH:HH:HH:HH:HH:HH;_

MAC地址

0000-00-00

ISO日期;空白表示为空格。

>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#

许可证号;空白表示为#,并且所有(字母)字符都将转换为大写。

要获取范围控制(例如IP地址),请一起使用掩码和 validators

另请参阅

maxLength digitValue()

访问函数
property maxLength: int#

此属性持最大允许的文本长度。

如果文本过长,它将在限制处截断。

如果发生截断,任何选定的文本将被取消选中,光标位置设置为0,并且将显示字符串的第一部分。

如果行编辑具有输入掩码,掩码定义最大字符串长度。

默认情况下,此属性包含值为32767。

另请参阅

inputMask

访问函数
property modified: bool#

此属性保存是否已由用户修改了行编辑的内容。

编辑器不会读取修改标志,它有一个默认值为false,并且在用户更改行编辑内容时将其更改为true。

适用于需要提供默认值但一开始不知道默认值是什么(例如,它取决于表单上的其他字段)的情况。在没有最佳默认值的情况下开始行编辑,当已知默认值时,如果modified()返回false(用户没有输入任何文本),则插入默认值。

调用setText()会将modified标志重置为false。

访问函数
属性 placeholderText: str#

此属性包含行编辑的占位符文本。

设置此属性将在行编辑为空时显示灰色占位符文本。

通常,一个空的行编辑即使在具有焦点时也显示占位符文本。但是,如果内容水平居中,当行编辑有焦点时,占位符文本不会在光标下方显示。

默认情况下,此属性包含一个空字符串。

另请参阅

text()

访问函数
属性 readOnly: bool#

此属性包含行编辑是否为只读。

在只读模式下,用户仍然可以将文本复制到剪贴板,或拖放文本(如果echoMode()Normal),但不能编辑它。

QLineEdit在只读模式下不会显示光标。

默认情况下,此属性为 false

另请参阅

setEnabled()

访问函数
属性 redoAvailable: bool#

此属性包含 redo 是否可用。

一旦用户在行编辑中的文本上执行了一个或多个撤销操作,redo 就可用。

默认情况下,此属性为 false

访问函数
属性 selectedText: str#

此属性包含选中的文本。

如果没有选中文本,此属性的值是一个空字符串。

默认情况下,此属性包含一个空字符串。

另请参阅

hasSelectedText()

访问函数
属性 text: str#

此属性包含行编辑的文本。

设置此属性将清除选择,清除撤销/重做历史,将光标移动到行末,并将modified属性重置为false。将setText()插入的文本不会进行验证。

文本被截断为maxLength长度。

默认情况下,此属性包含一个空字符串。

另请参阅

insert() clear()

访问函数
属性 undoAvailable: bool#

此属性表示是否可以撤销。

当用户修改行编辑中的文本时,撤销功能变得可用。

默认情况下,此属性为 false

访问函数
__init__(arg__1[, parent=None])#
参数:
  • arg__1 – str

  • parentQWidget

contents作为文本构造一个新的行编辑,作为parent的子元素。

光标位置设置为行尾,最大文本长度为32767个字符。

另请参阅

text() setMaxLength()

__init__([parent=None])
参数:

parentQWidget

创建一个不带文本的行编辑。

最大文本长度设置为32767个字符。

parent参数传递给QWidget构造函数。

另请参阅

setText() setMaxLength()

addAction(icon, position)#
参数:
返回类型:

QAction

这是一个重载函数。

在指定的position处,使用给定的icon创建一个新的操作。

addAction(action, position)
参数:

action添加到position处的动作列表中。

alignment()#
返回类型:

AlignmentFlag的组合。

另请参阅

setAlignment()

属性alignmentᅟ的获取器。

backspace()#

如果没有选择文本,则删除文本光标左侧的字符,并将光标左移一个位置。如果已选择文本,则将光标移到所选文本的开始处,并删除所选文本。

另请参阅

del()

clear()#

清除行编辑的内容。

另请参阅

setText() insert()

completer()#
返回类型:

QCompleter

返回当前提供自动补全的QCompleter

另请参阅

setCompleter()

copy()#

如果已选择文本且echoMode()Normal,则将选中的文本复制到剪贴板。

另请参阅

cut() paste()

createStandardContextMenu()#
返回类型:

QMenu

创建标准上下文菜单,当用户用右键点击行编辑时显示。从默认的contextMenuEvent()处理程序调用。弹出菜单的所有权传递给调用者。

cursorBackward(mark[steps=1])#
参数:
  • mark – 布尔

  • steps – 整数

将光标向后移动 steps 个字符。如果 mark 为 true,每个移动过的字符都将被添加到选择中。如果 mark 为 false,则选择将被清除。

另请参阅

cursorForward()

cursorForward(mark[, steps=1])#
参数:
  • mark – 布尔

  • steps – 整数

将光标向前移动 steps 个字符。如果 mark 为 true,每个移动过的字符都将被添加到选择中。如果 mark 为 false,则选择将被清除。

另请参阅

cursorBackward()

cursorMoveStyle()#
返回类型:

光标移动样式

另请参阅

setCursorMoveStyle()

获取属性 cursorMoveStyle属性 的值。

cursorPosition()#
返回类型:

int

另请参阅

setCursorPosition()

获取属性 cursorPosition属性 的值。

cursorPositionAt(pos)#
参数:

posQPoint

返回类型:

int

在点 pos 下方返回光标位置。

cursorPositionChanged(arg__1, arg__2)#
参数:
  • arg__1 – int

  • arg__2 – int

每当光标移动时,此信号都会发出。光标的新旧位置分别由 oldPosnewPos 提供。

cursorRect()#
返回类型:

QRect

返回包含行编辑光标的矩形。

cursorWordBackward(mark)#
参数:

mark – 布尔

将光标向后移动一个单词。如果 mark 为 true,则将单词选中。

另请参阅

cursorWordForward()

cursorWordForward(mark)#
参数:

mark – 布尔

将光标向前移动一个单词。如果 mark 为真,则该单词也将被选中。

另请参阅

cursorWordBackward()

cut()#

将选中文本复制到剪贴板并删除它(如果有),如果 echoMode()Normal

如果当前验证器不允许删除选中的文本,则 cut() 将复制但不删除。

del_()#
deselect()#

取消选择任何选中的文本。

displayText()#
返回类型:

str

属性 displayText属性 的获取器。

dragEnabled()#
返回类型:

bool

另请参阅

setDragEnabled()

属性 dragEnabled属性 的获取器。

echoMode()#
返回类型:

EchoMode

另请参阅

setEchoMode()

属性 echoMode属性 的获取器。

editingFinished()#

当使用 Return 或 Enter 键时,或如果行编辑失去焦点且内容自上次发出此信号以来已更改,则发出此信号。

注意

如果在行编辑器上设置了validator()inputMask(),并且启用了回车/返回键,则只有当输入符合inputMask()并且validator()返回QValidator::Acceptable时,才会发出editingFinished()信号。

end(mark)#
参数:

mark – 布尔

将文本光标移至行尾,除非它已经在那里。如果mark为true,则从最后一个位置开始选择文本。否则,如果是移动光标,已选择的文本不会被选择。

另请参阅

home()

hasAcceptableInput()#
返回类型:

bool

属性acceptableInputᅟ的获取器。

hasFrame()#
返回类型:

bool

属性frameᅟ的获取器。

hasSelectedText()#
返回类型:

bool

属性hasSelectedTextᅟ的获取器。

home(mark)#
参数:

mark – 布尔

将文本光标移至行首,除非它已经在那里。如果mark为true,则从第一个位置开始选择文本。否则,如果是移动光标,已选择的文本不会被选择。

另请参阅

end()

initStyleOption(option)#
参数:

optionQStyleOptionFrame

用此QLineEdit的值初始化option。当子类需要QStyleOptionFrame,但又不想自己填写所有信息时,此方法非常有用。

另请参阅

initFrom()

inputMask()#
返回类型:

str

另请参阅

setInputMask()

属性 inputMask 的获取器。

inputMethodQuery(property, argument)#
参数:
返回类型:

对象

inputRejected()#

当用户按下被视为无效输入的键时,将发射此信号。例如,如果使用键导致验证器的 validate() 方法调用返回 Invalid。另一种情况是尝试输入超出行编辑最大长度的更多字符。

注意

即使只有部分文本被接受,此信号仍将发射。例如,如果设置了最大长度并且当粘贴时剪切板的文本长度超过最大长度。

insert(arg__1)#
参数:

arg__1 – str

删除任何选定的文本,插入 newText,并验证结果。如果它是有效的,则将新文本设为行编辑的新内容。

另请参阅

setText() clear()

isClearButtonEnabled()#
返回类型:

bool

属性 clearButtonEnabled 的获取器。

isModified()#
返回类型:

bool

属性 modified 的获取器。

isReadOnly()#
返回类型:

bool

属性 readOnly 的获取器。

isRedoAvailable()#
返回类型:

bool

属性 redoAvailable 的获取器。

isUndoAvailable()#
返回类型:

bool

属性 undoAvailable 的获取器。

maxLength()#
返回类型:

int

另请参阅

setMaxLength()

属性 maxLength 的获取器。

paste()#

在光标位置插入剪切板的文本,删除任何选中的文本,除非行编辑是 只读

如果最终结果对当前的 validator 是无效的,则不会发生任何操作。

另请参阅

copy() cut()

placeholderText()#
返回类型:

str

另请参阅

setPlaceholderText()

属性 placeholderText 的获取器。

redo()#

如果重做操作可用,则执行上一个操作。

returnPressed()#

当使用 Return 或 Enter 键时,会发出此信号。

注意

如果行编辑上有设置的 validatorinputMask,则只有当输入遵循 inputMaskvalidator 返回 QValidator::Acceptable 时,才会发出 returnPressed() 信号。

selectAll()#

选择所有文本(高亮显示)并将光标移至末尾。

注意

当插入默认值时很有用,因为如果用户在点击小部件之前输入,所选文本将被删除。

另请参阅

setSelection() deselect()

selectedText()#
返回类型:

str

属性 selectedText 的获取器。

selectionChanged()#

每当选择发生变化时,都会发出此信号。

selectionEnd()#
返回类型:

int

返回行编辑中直接在选中文本后的字符索引(如果没有选中文本,则返回-1)。

selectionLength()#
返回类型:

int

返回选中文本的长度。

selectionStart()#
返回类型:

int

返回行编辑中第一个选中字符的索引(如果没有选中文本,则返回-1)。

setAlignment(flag)#
参数:

flagAlignmentFlag 组合

另请参阅

alignment()

属性的设置器 alignment近似值 .

setClearButtonEnabled(enable)#
参数:

enable – bool

另请参阅

isClearButtonEnabled()

属性的设置器 clearButtonEnabled近似值 .

setCompleter(completer)#
参数:

completerQCompleter

将此行编辑设置为使用自动补全程序,c。通过使用 setCompletionMode() 设置补全模式。

要使用 QValidator 或 inputMaskQCompleter,您需要确保提供给 QCompleter 的模型包含有效条目。您可以使用 QSortFilterProxyModel 确保只有有效条目包含在 QCompleter 的模型中。

要通过传递一个 nullptr 来移除补全程序并禁用自动补全。

另请参阅

completer() QCompleter

setCursorMoveStyle(style)#
参数:

styleCursorMoveStyle

另请参阅

cursorMoveStyle()

属性 cursorMoveStyleᅟ 的设置器。

setCursorPosition(arg__1)#
参数:

arg__1 – int

另请参阅

cursorPosition()

属性 cursorPositionᅟ 的设置器。

setDragEnabled(b)#
参数:

b – 布尔值

另请参阅

dragEnabled()

属性 dragEnabledᅟ 的设置器。

setEchoMode(arg__1)#
参数:

arg__1EchoMode

另请参阅

echoMode()

属性 echoModeᅟ 的设置器。

setFrame(arg__1)#
参数:

arg__1 – 布尔值

另请参阅

hasFrame()

设置属性 frame_属性 的值。

setInputMask(inputMask)#
参数:

inputMask – 字符串

另请参阅

inputMask()

设置属性 inputMask_属性 的值。

setMaxLength(arg__1)#
参数:

arg__1 – int

另请参阅

maxLength()

设置属性 maxLength_属性 的值。

setModified(arg__1)#
参数:

arg__1 – 布尔值

另请参阅

isModified()

设置属性 modified_属性 的值。

setPlaceholderText(arg__1)#
参数:

arg__1 – str

另请参阅

placeholderText()

设置属性 placeholderText_属性 的值。

setReadOnly(arg__1)#
参数:

arg__1 – 布尔值

另请参阅

isReadOnly()

设置属性 readOnly_属性 的值。

setSelection(arg__1, arg__2)#
参数:
  • arg__1 – int

  • arg__2 – int

选择从位置 start 开始的文本,长度为 length 个字符。允许负长度。

setText(arg__1)#
参数:

arg__1 – str

另请参阅

text()

设置属性 text_属性 的值。

setTextMargins(margins)#
参数:

边框QMargins

设置框架内部文本周围的边框。

另请参阅

textMargins()

setTextMargins(left, top, right, bottom)
参数:
  • left – int

  • top – int

  • right – int

  • bottom – int

将框架内部文本周围的边距设置为左、上、右、下的值。

另请参阅

textMargins()

setValidator(arg__1)#
参数:

arg__1QValidator

设置行编辑值的验证器为 v。

当行编辑的 returnPressed()editingFinished() 信号只会在 v 将行编辑的内容验证为有效时发出。用户可以在编辑过程中将内容更改到任何中间值,但将被阻止编辑文本到 v 验证为无效的值。

这允许您在完成编辑时限制要存储的文本,同时使用户有足够的自由从一种有效状态编辑文本到另一种状态。

要删除当前输入验证器,请传递 nullptr。初始设置是没有输入验证器(接受任何输入,直到 maxLength() )。

另请参阅

validator() hasAcceptableInput() QIntValidatorQDoubleValidatorQRegularExpressionValidator

text()#
返回类型:

str

另请参阅

setText()

属性 text 的获取器。

textChanged(arg__1)#
参数:

arg__1 – str

每当文本更改时都会发出此信号。text 参数是新的文本。

textEdited() 不同,当文本通过编程方式更改时,例如通过调用 setText(),此信号也会发出。

text 属性的通知信号。

textEdited(arg__1)#
参数:

arg__1 – str

每当文本被编辑时会发出此信号。text 参数是新的文本。

textChanged() 不同,当文本通过编程方式更改时,例如通过调用 setText(),此信号不会发出。

textMargins()#
返回类型:

QMargins

返回小部件的文本边距。

另请参阅

setTextMargins()

undo()#

如果可以撤销,则撤销最后一个操作。取消选择任何当前选择,并将选择开始更新到当前光标位置。

validator()#
返回类型:

QValidator

返回当前输入验证器的指针,如果没有设置验证器,则为 None

另请参阅

setValidator()