- class QLineEdit#
The
QLineEdit
widget is a one-line text editor. More…概述#
属性#
acceptableInput
- Whether the input satisfies the inputMask and the validatoralignment
- The alignment of the line editclearButtonEnabled
- Whether the line edit displays a clear button when it is not emptycursorMoveStyle
- The movement style of the cursor in this line editcursorPosition
- The current cursor position for this line editdisplayText
- The displayed textdragEnabled
- Whether the line edit starts a drag if the user presses and moves the mouse on some selected textechoMode
- The echo mode of the line editframe
- Whether the line edit draws itself with a framehasSelectedText
- 是否有任何选中文本inputMask
- 验证输入掩码maxLength
- 文本允许的最大长度modified
- 是否用户已经修改了行编辑的内容placeholderText
- 行编辑的占位文本readOnly
- 行编辑是否为只读redoAvailable
- 是否可以重做selectedText
- 所选文本text
- 行编辑的文本undoAvailable
- 是否可以撤销
方法#
def
__init__()
def
addAction()
def
alignment()
def
backspace()
def
completer()
def
cursorBackward()
def
cursorForward()
def
cursorPosition()
def
cursorRect()
定义
del_()
定义
deselect()
定义
echoMode()
定义
end()
定义
hasFrame()
定义
home()
定义
inputMask()
定义
insert()
定义
isModified()
定义
isReadOnly()
定义
maxLength()
定义
setFrame()
定义
text()
定义
validator()
虚方法#
槽函数#
信号#
注意
本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告诉我们。
详细描述#
行编辑允许用户使用包括撤销和重做、剪切和粘贴以及拖放等有用的编辑功能,输入和编辑单行纯文本。
通过更改行编辑的
echoMode()
,它还可以用作只写字段,例如密码输入。QTextEdit
是一个相关的类,允许多行、富文本编辑。文本约束#
使用
maxLength
来定义允许的最大文本长度。您可以使用inputMask
和setValidator()
进一步限制文本内容。编辑文本#
您可以使用
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
一样。另请参阅
注意
在
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#
该属性定义了显示的文本。
如果
echoMode
是Normal
,则此方法返回的值与text()
相同。如果EchoMode
是Password
或PasswordEchoOnEdit
,则返回平台相关的密码掩码字符字符串(例如“******”)。如果EchoMode
是NoEcho
,则返回空字符串。默认情况下,此属性包含一个空字符串。
另请参阅
- 访问函数
- property dragEnabled: bool#
此属性表示在用户按下并移动鼠标到某些选定的文本上时,行编辑是否开始拖动。
默认情况下禁用拖动。
- property echoMode: QLineEdit.EchoMode#
此属性表示行编辑的回显模式。
回显模式决定了在行编辑器中输入的文本如何显示(或回显)给用户。
最常见的设置是
Normal
,其中用户输入的文本将原样显示。QLineEdit
还支持阻止或隐藏输入文本的模式:这些包括NoEcho
,Password
和PasswordEchoOnEdit
。此设置的显示以及复制或拖动文本的能力可能会受到影响。
默认情况下,此属性设置为
Normal
。另请参阅
- 访问函数
- property frame: bool#
该属性表示线编辑是否以边框绘制自身。
如果启用(默认),线编辑将在边框内绘制自身。否则,线编辑将在没有边框的情况下绘制自身。
- 访问函数
- property hasSelectedText: bool#
该属性表示是否存在选中的文本。
hasSelectedText() 返回
true
则表示用户已选中部分或全部文本,否则返回false
。默认情况下,此属性为
false
。另请参阅
- 访问函数
- 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。
另请参阅
- property modified: bool#
此属性保存是否已由用户修改了行编辑的内容。
编辑器不会读取修改标志,它有一个默认值为false,并且在用户更改行编辑内容时将其更改为true。
适用于需要提供默认值但一开始不知道默认值是什么(例如,它取决于表单上的其他字段)的情况。在没有最佳默认值的情况下开始行编辑,当已知默认值时,如果modified()返回
false
(用户没有输入任何文本),则插入默认值。调用
setText()
会将modified标志重置为false。- 属性 placeholderText: str#
此属性包含行编辑的占位符文本。
设置此属性将在行编辑为空时显示灰色占位符文本。
通常,一个空的行编辑即使在具有焦点时也显示占位符文本。但是,如果内容水平居中,当行编辑有焦点时,占位符文本不会在光标下方显示。
默认情况下,此属性包含一个空字符串。
另请参阅
- 属性 readOnly: bool#
此属性包含行编辑是否为只读。
在只读模式下,用户仍然可以将文本复制到剪贴板,或拖放文本(如果
echoMode()
是Normal
),但不能编辑它。QLineEdit
在只读模式下不会显示光标。默认情况下,此属性为
false
。另请参阅
- 属性 redoAvailable: bool#
此属性包含 redo 是否可用。
一旦用户在行编辑中的文本上执行了一个或多个撤销操作,redo 就可用。
默认情况下,此属性为
false
。- 访问函数
- 属性 selectedText: str#
此属性包含选中的文本。
如果没有选中文本,此属性的值是一个空字符串。
默认情况下,此属性包含一个空字符串。
另请参阅
- 访问函数
- 属性 text: str#
此属性包含行编辑的文本。
设置此属性将清除选择,清除撤销/重做历史,将光标移动到行末,并将
modified
属性重置为false。将setText()插入的文本不会进行验证。文本被截断为maxLength长度。
默认情况下,此属性包含一个空字符串。
- 访问函数
- 属性 undoAvailable: bool#
此属性表示是否可以撤销。
当用户修改行编辑中的文本时,撤销功能变得可用。
默认情况下,此属性为
false
。- 访问函数
以
contents
作为文本构造一个新的行编辑,作为parent
的子元素。光标位置设置为行尾,最大文本长度为32767个字符。
另请参阅
- __init__([parent=None])
- 参数:
parent –
QWidget
创建一个不带文本的行编辑。
最大文本长度设置为32767个字符。
将
parent
参数传递给QWidget
构造函数。另请参阅
- addAction(icon, position)#
- 参数:
icon –
QIcon
position –
ActionPosition
- 返回类型:
这是一个重载函数。
在指定的
position
处,使用给定的icon
创建一个新的操作。- addAction(action, position)
- 参数:
action –
QAction
position –
ActionPosition
将
action
添加到position
处的动作列表中。- alignment()#
- 返回类型:
AlignmentFlag
的组合。
另请参阅
属性
alignmentᅟ
的获取器。- backspace()#
如果没有选择文本,则删除文本光标左侧的字符,并将光标左移一个位置。如果已选择文本,则将光标移到所选文本的开始处,并删除所选文本。
另请参阅
del()
- clear()#
清除行编辑的内容。
- completer()#
- 返回类型:
返回当前提供自动补全的
QCompleter
。另请参阅
- copy()#
如果已选择文本且
echoMode()
为Normal
,则将选中的文本复制到剪贴板。创建标准上下文菜单,当用户用右键点击行编辑时显示。从默认的
contextMenuEvent()
处理程序调用。弹出菜单的所有权传递给调用者。- cursorBackward(mark[,steps=1])#
- 参数:
mark – 布尔
steps – 整数
将光标向后移动
steps
个字符。如果mark
为 true,每个移动过的字符都将被添加到选择中。如果mark
为 false,则选择将被清除。另请参阅
- cursorForward(mark[, steps=1])#
- 参数:
mark – 布尔
steps – 整数
将光标向前移动
steps
个字符。如果mark
为 true,每个移动过的字符都将被添加到选择中。如果mark
为 false,则选择将被清除。另请参阅
- cursorMoveStyle()#
- 返回类型:
另请参阅
获取属性
cursorMoveStyle属性
的值。- cursorPosition()#
- 返回类型:
int
另请参阅
获取属性
cursorPosition属性
的值。在点
pos
下方返回光标位置。- cursorPositionChanged(arg__1, arg__2)#
- 参数:
arg__1 – int
arg__2 – int
每当光标移动时,此信号都会发出。光标的新旧位置分别由
oldPos
和newPos
提供。返回包含行编辑光标的矩形。
- cursorWordBackward(mark)#
- 参数:
mark – 布尔
将光标向后移动一个单词。如果
mark
为 true,则将单词选中。另请参阅
- cursorWordForward(mark)#
- 参数:
mark – 布尔
将光标向前移动一个单词。如果
mark
为真,则该单词也将被选中。另请参阅
- cut()#
将选中文本复制到剪贴板并删除它(如果有),如果
echoMode()
为Normal
。如果当前验证器不允许删除选中的文本,则 cut() 将复制但不删除。
另请参阅
- del_()#
- deselect()#
取消选择任何选中的文本。
- displayText()#
- 返回类型:
str
属性
displayText属性
的获取器。- dragEnabled()#
- 返回类型:
bool
另请参阅
属性
dragEnabled属性
的获取器。- echoMode()#
- 返回类型:
另请参阅
属性
echoMode属性
的获取器。- editingFinished()#
当使用 Return 或 Enter 键时,或如果行编辑失去焦点且内容自上次发出此信号以来已更改,则发出此信号。
注意
如果在行编辑器上设置了
validator()
或inputMask()
,并且启用了回车/返回键,则只有当输入符合inputMask()
并且validator()
返回QValidator::Acceptable时,才会发出editingFinished()信号。- end(mark)#
- 参数:
mark – 布尔
将文本光标移至行尾,除非它已经在那里。如果
mark
为true,则从最后一个位置开始选择文本。否则,如果是移动光标,已选择的文本不会被选择。另请参阅
- hasAcceptableInput()#
- 返回类型:
bool
属性
acceptableInputᅟ
的获取器。- hasFrame()#
- 返回类型:
bool
属性
frameᅟ
的获取器。- hasSelectedText()#
- 返回类型:
bool
属性
hasSelectedTextᅟ
的获取器。- home(mark)#
- 参数:
mark – 布尔
将文本光标移至行首,除非它已经在那里。如果
mark
为true,则从第一个位置开始选择文本。否则,如果是移动光标,已选择的文本不会被选择。另请参阅
- initStyleOption(option)#
- 参数:
option –
QStyleOptionFrame
用此
QLineEdit
的值初始化option
。当子类需要QStyleOptionFrame
,但又不想自己填写所有信息时,此方法非常有用。另请参阅
- inputMask()#
- 返回类型:
str
另请参阅
属性
inputMask
的获取器。- inputMethodQuery(property, argument)#
- 参数:
property –
InputMethodQuery
argument – 对象
- 返回类型:
对象
- inputRejected()#
当用户按下被视为无效输入的键时,将发射此信号。例如,如果使用键导致验证器的 validate() 方法调用返回 Invalid。另一种情况是尝试输入超出行编辑最大长度的更多字符。
注意
即使只有部分文本被接受,此信号仍将发射。例如,如果设置了最大长度并且当粘贴时剪切板的文本长度超过最大长度。
- insert(arg__1)#
- 参数:
arg__1 – str
删除任何选定的文本,插入
newText
,并验证结果。如果它是有效的,则将新文本设为行编辑的新内容。- isClearButtonEnabled()#
- 返回类型:
bool
属性
clearButtonEnabled
的获取器。- isModified()#
- 返回类型:
bool
属性
modified
的获取器。- isReadOnly()#
- 返回类型:
bool
属性
readOnly
的获取器。- isRedoAvailable()#
- 返回类型:
bool
属性
redoAvailable
的获取器。- isUndoAvailable()#
- 返回类型:
bool
属性
undoAvailable
的获取器。- maxLength()#
- 返回类型:
int
另请参阅
属性
maxLength
的获取器。- paste()#
在光标位置插入剪切板的文本,删除任何选中的文本,除非行编辑是
只读
。如果最终结果对当前的
validator
是无效的,则不会发生任何操作。- placeholderText()#
- 返回类型:
str
另请参阅
属性
placeholderText
的获取器。- redo()#
如果重做操作可用,则执行上一个操作。
- returnPressed()#
当使用 Return 或 Enter 键时,会发出此信号。
注意
如果行编辑上有设置的
validator
或inputMask
,则只有当输入遵循inputMask
且validator
返回 QValidator::Acceptable 时,才会发出 returnPressed() 信号。- selectAll()#
选择所有文本(高亮显示)并将光标移至末尾。
- selectedText()#
- 返回类型:
str
属性
selectedText
的获取器。- selectionChanged()#
每当选择发生变化时,都会发出此信号。
- selectionEnd()#
- 返回类型:
int
返回行编辑中直接在选中文本后的字符索引(如果没有选中文本,则返回-1)。
- selectionLength()#
- 返回类型:
int
返回选中文本的长度。
- selectionStart()#
- 返回类型:
int
返回行编辑中第一个选中字符的索引(如果没有选中文本,则返回-1)。
- setAlignment(flag)#
- 参数:
flag –
AlignmentFlag
组合
另请参阅
属性的设置器
alignment近似值
.- setClearButtonEnabled(enable)#
- 参数:
enable – bool
属性的设置器
clearButtonEnabled近似值
.- setCompleter(completer)#
- 参数:
completer –
QCompleter
将此行编辑设置为使用自动补全程序,
c
。通过使用setCompletionMode()
设置补全模式。要使用 QValidator 或
inputMask
与QCompleter
,您需要确保提供给QCompleter
的模型包含有效条目。您可以使用 QSortFilterProxyModel 确保只有有效条目包含在QCompleter
的模型中。要通过传递一个
nullptr
来移除补全程序并禁用自动补全。另请参阅
- setCursorMoveStyle(style)#
- 参数:
style –
CursorMoveStyle
另请参阅
属性
cursorMoveStyleᅟ
的设置器。- setCursorPosition(arg__1)#
- 参数:
arg__1 – int
另请参阅
属性
cursorPositionᅟ
的设置器。- setDragEnabled(b)#
- 参数:
b – 布尔值
另请参阅
属性
dragEnabledᅟ
的设置器。属性
echoModeᅟ
的设置器。- setFrame(arg__1)#
- 参数:
arg__1 – 布尔值
另请参阅
设置属性
frame_属性
的值。- setInputMask(inputMask)#
- 参数:
inputMask – 字符串
另请参阅
设置属性
inputMask_属性
的值。- setMaxLength(arg__1)#
- 参数:
arg__1 – int
另请参阅
设置属性
maxLength_属性
的值。- setModified(arg__1)#
- 参数:
arg__1 – 布尔值
另请参阅
设置属性
modified_属性
的值。- setPlaceholderText(arg__1)#
- 参数:
arg__1 – str
另请参阅
设置属性
placeholderText_属性
的值。- setReadOnly(arg__1)#
- 参数:
arg__1 – 布尔值
另请参阅
设置属性
readOnly_属性
的值。- setSelection(arg__1, arg__2)#
- 参数:
arg__1 – int
arg__2 – int
选择从位置
start
开始的文本,长度为length
个字符。允许负长度。设置属性
text_属性
的值。设置框架内部文本周围的边框。
另请参阅
- setTextMargins(left, top, right, bottom)
- 参数:
left – int
top – int
right – int
bottom – int
将框架内部文本周围的边距设置为左、上、右、下的值。
另请参阅
- setValidator(arg__1)#
- 参数:
arg__1 –
QValidator
设置行编辑值的验证器为 v。
当行编辑的
returnPressed()
和editingFinished()
信号只会在 v 将行编辑的内容验证为有效时发出。用户可以在编辑过程中将内容更改到任何中间值,但将被阻止编辑文本到 v 验证为无效的值。这允许您在完成编辑时限制要存储的文本,同时使用户有足够的自由从一种有效状态编辑文本到另一种状态。
要删除当前输入验证器,请传递
nullptr
。初始设置是没有输入验证器(接受任何输入,直到maxLength()
)。另请参阅
validator()
hasAcceptableInput()
QIntValidatorQDoubleValidatorQRegularExpressionValidator
属性
text
的获取器。- textChanged(arg__1)#
- 参数:
arg__1 – str
每当文本更改时都会发出此信号。
text
参数是新的文本。与
textEdited()
不同,当文本通过编程方式更改时,例如通过调用setText()
,此信号也会发出。text
属性的通知信号。- textEdited(arg__1)#
- 参数:
arg__1 – str
每当文本被编辑时会发出此信号。
text
参数是新的文本。与
textChanged()
不同,当文本通过编程方式更改时,例如通过调用setText()
,此信号不会发出。返回小部件的文本边距。
另请参阅
- undo()#
如果可以撤销,则撤销最后一个操作。取消选择任何当前选择,并将选择开始更新到当前光标位置。
- validator()#
- 返回类型:
返回当前输入验证器的指针,如果没有设置验证器,则为
None
。另请参阅