QLineEdit 类

QLineEdit 小部件是一款单行文本编辑器。 更多...

头文件 #include <QLineEdit>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QWidget

公共类型

枚举ActionPosition { LeadingPosition, TrailingPosition }
枚举EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit }

属性

公共函数

QLineEdit(QWidget *parent = nullptr)
QLineEdit(const QString &contents, QWidget *parent = nullptr)
virtual~QLineEdit()
voidaddAction(QAction *action, QLineEdit::ActionPosition position)
QAction *addAction(const QIcon &icon, QLineEdit::ActionPosition position)
Qt::Alignmentalignment() const
void退格(Backspace)()
QCompleter *completer() const
QMenu *createStandardContextMenu()
voidcursorBackward(bool mark, int steps = 1)
voidcursorForward(bool mark, int steps = 1)
Qt::CursorMoveStylecursorMoveStyle() const
intcursorPosition() const
intcursorPositionAt(const QPoint &pos)
voidcursorWordBackward(bool mark)
voidcursorWordForward(bool mark)
void删除()
void取消选择()
QStringdisplayText() const
booldragEnabled() const
QLineEdit::EchoModeechoMode() const
voidend(bool mark)
boolhasAcceptableInput() const
boolhasFrame() const
boolhasSelectedText() const
voidhome(bool mark)
QStringinputMask() const
voidinsert(const QString &newText)
boolisClearButtonEnabled() const
boolisModified() const
boolisReadOnly() const
boolisRedoAvailable() const
boolisUndoAvailable() const
intmaxLength() const
QStringplaceholderText() const
QStringselectedText() const
intselectionEnd() const
intselectionLength() const
intselectionStart() const
voidsetAlignment(Qt::Alignment flag)
voidsetClearButtonEnabled(bool enable)
voidsetCompleter(QCompleter *c)
voidsetCursorMoveStyle(Qt::CursorMoveStyle style)
voidsetCursorPosition(int)
voidsetDragEnabled(bool b)
voidsetEchoMode(QLineEdit::EchoMode)
voidsetFrame(bool)
voidsetInputMask(const QString &inputMask)
voidsetMaxLength(int)
voidsetModified(bool)
voidsetPlaceholderText(const QString &)
voidsetReadOnly(bool)
voidsetSelection(int start, int length)
voidsetTextMargins(int left, int top, int right, int bottom)
voidsetTextMargins(const QMargins &margins)
voidsetValidator(const QValidator *v)
QStringtext() const
QMarginstextMargins() const
const QValidator *validator() const

重实现的公共函数

virtual boolevent(QEvent *e) override
virtual QVariantinputMethodQuery(Qt::InputMethodQuery 属性) const override
virtual QSizeminimumSizeHint() const override
virtual QSizesizeHint() const override
virtual voidtimerEvent(QTimerEvent *e) override

公共槽

voidclear()
voidcopy() const
voidcut()
voidpaste()
voidredo()
voidselectAll()
voidsetText(const QString &)
voidundo()

信号

voidcursorPositionChanged(int oldPos, int newPos)
voideditingFinished()
voidinputRejected()
voidreturnPressed()
voidselectionChanged()
voidtextChanged(const QString &text)
voidtextEdited(const QString &text)

保护函数

QRectcursorRect() const
virtual voidinitStyleOption(QStyleOptionFrame *option) const

重写的保护函数

virtual voidchangeEvent(QEvent *ev) override
virtual voidcontextMenuEvent(QContextMenuEvent *event) override
virtual voiddragEnterEvent(QDragEnterEvent *e) override
virtual voiddragLeaveEvent(QDragLeaveEvent *e) override
virtual voiddragMoveEvent(QDragMoveEvent *e) override
virtual voiddropEvent(QDropEvent *e) override
virtual voidfocusInEvent(QFocusEvent *e) override
virtual voidfocusOutEvent(QFocusEvent *e) override
virtual voidinputMethodEvent(QInputMethodEvent *e) override
virtual voidkeyPressEvent(QKeyEvent *event) override
virtual voidkeyReleaseEvent(QKeyEvent *e) override
virtual voidmouseDoubleClickEvent(QMouseEvent *e) override
virtual voidmouseMoveEvent(QMouseEvent *e) override
virtual voidmousePressEvent(QMouseEvent *e) override
virtual voidmouseReleaseEvent(QMouseEvent *e) override
virtual voidpaintEvent(QPaintEvent *) override

详细描述

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

通过改变行编辑的 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各种使用方法的更多信息,请参阅Line Edits Example,它还提供了一系列编辑框示例,展示了各种属性和验证器对用户输入和输出的影响。

设置框架

默认情况下,QLineEdit根据平台样式指南具有一个框架。您可以通过调用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重做最后撤销的操作。

任何代表有效字符的键盘按键都将将该字符插入到行编辑中。

另请参阅 QTextEditQLabelQComboBox以及行编辑示例

成员类型文档

枚举 QLineEdit::ActionPosition

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

常量描述
QLineEdit::LeadingPosition0当使用布局方向 Qt::LeftToRight 时,小部件显示在文本的左侧,当使用 Qt::RightToLeft 时,小部件显示在文本的右侧。
QLineEdit::TrailingPosition1当使用布局方向 Qt::LeftToRight 时,小部件显示在文本的右侧,当使用 Qt::RightToLeft 时,小部件显示在文本的左侧。

另请参阅 addAction()、removeAction() 和 QWidget::layoutDirection

枚举 QLineEdit::EchoMode

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

常量描述
QLineEdit::Normal0按输入顺序显示字符。这是默认设置。
QLineEdit::NoEcho1不显示任何内容。对于密码等情况,这可能很有用,其中密码长度也应保密。
QLineEdit::Password2显示平台相关的密码掩码字符,而不是实际输入的字符。
QLineEdit::PasswordEchoOnEdit3只有在输入时显示字符。否则,显示与 Password 相同的字符。

另请参阅 setEchoMode() 和 echoMode

属性文档

[只读] acceptableInput : const bool

该属性保留输入是否满足 inputMask 和验证器。

默认情况下,此属性为 true

访问函数

boolhasAcceptableInput() const

另请参阅 setInputMask() 和 setValidator

alignment : Qt::Alignment

该属性保留行编辑的对齐方式。

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

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

访问函数

Qt::Alignmentalignment() const
voidsetAlignment(Qt::Alignment flag)

另请参阅 Qt::Alignment

clearButtonEnabled : bool

该属性保留,当行编辑为空时是否显示清除按钮。

如果启用,当行编辑包含一些文本时,它将显示尾随的 清除 按钮。否则,行编辑不显示 清除 按钮(默认值)。

访问函数

boolisClearButtonEnabled() const
voidsetClearButtonEnabled(bool enable)

另请参阅 addAction() 和 removeAction

cursorMoveStyle : Qt::CursorMoveStyle

该属性保留此行编辑中光标的移动方式。

当此属性设置为 Qt::VisualMoveStyle 时,行编辑将使用视觉移动样式。使用左箭头键始终使光标向左移动,无论文本的书写方向如何。相同的操作也适用于右箭头键。

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

访问函数

Qt::CursorMoveStylecursorMoveStyle() const
voidsetCursorMoveStyle(Qt::CursorMoveStyle style)

cursorPosition : int

此属性保存此行编辑的当前光标位置。

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

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

访问函数

intcursorPosition() const
voidsetCursorPosition(int)

[只读] displayText : const QString

此属性保存显示的文本。

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

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

访问函数

QStringdisplayText() const

另请参阅setEchoModetextEchoMode

dragEnabled : bool

此属性保存是否在用户在选定的文本上按下并移动鼠标时开始拖动。

默认情况下,拖动被禁用。

访问函数

booldragEnabled() const
voidsetDragEnabled(bool b)

echoMode : EchoMode

此属性保存行编辑的回显模式。

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

最常用的设置是 Normal,在这种情况下,用户输入的文本将按原样显示。QLineEdit 还支持允许抑制或掩盖输入文本的模式:包括 NoEchoPasswordPasswordEchoOnEdit

此设置会影响小部件的显示以及复制或拖动文本的能力。

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

访问函数

QLineEdit::EchoModeechoMode() const
voidsetEchoMode(QLineEdit::EchoMode)

另请参阅EchoModedisplayText

frame : bool

此属性表示行编辑是否使用框架绘制自身。

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

访问函数

boolhasFrame() const
voidsetFrame(bool)

[只读] hasSelectedText : const bool

此属性表示是否有任何文本被选中。

当用户选中文本的一部分或全部时,hasSelectedText()返回true。否则,它返回false

默认情况下,此属性为false

访问函数

boolhasSelectedText() const

另请参阅:selectedText

inputMask : QString

此属性包含验证输入掩码。

设置QLineEdit的验证掩码。可以使用验证器代替或与掩码结合使用;请参阅setValidator。默认情况下为空字符串,表示不使用输入掩码。

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

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

掩码字符定义在此位置视为有效输入字符的类别
元字符各种特殊意义(详见下文)。
分隔符所有其他字符都视为不可变分隔符。

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

掩码字符含义
A需要字母类别的字符,例如 A-Z, a-z。
a允许但不是必须的字母类别的字符。
N需要字母或数字类别的字符,例如 A-Z, a-z, 0-9。
n允许但不是必须的字母或数字类别的字符。
X需要非空白字符。
x允许但不是必须的非空白字符。
9L
0需要数字类别的字符,例如 0-9。
l允许但不是必须的数字类别的字符。
D需要数字类别并且大于零的字符,例如 1-9。
#d
d允许数字类别并且大于零的字符,例如 1-9。
Character of the Number category, or plus/minus sign permitted but not required.Hexadecimal character required. A-F, a-f, 0-9.
hHexadecimal character permitted but not required.
Binary character required. 0-1.Binary character permitted but not required.
Meta Character含义
>后将所有字母字符大写。
<后将所有字母字符小写。
!关闭大小写转换。
;c终止输入掩码并设置空白字符为c
[ ] { }保留。
\使用\\来转义上述特殊字符,以便将其用作分隔符。

在创建或清除时,行编辑将填充输入掩码字符串的副本,其中元字符已被删除,掩码字符已被替换为空白字符(默认情况下为空格)。

当设置输入掩码时,text() 方法返回一个修改后的行编辑内容的副本,其中已移除所有 空白 字符。未修改的内容可以使用 displayText() 查阅。

hasAcceptableInput() 方法在行编辑当前内容不满足输入掩码要求时返回 false。

示例

掩码注释
000.000.000.000;_IP地址;空白处用 _ 表示。
HH:HH:HH:HH:HH:HH;_MAC地址
0000-00-00ISO日期;空白处用 空格
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#许可号;空白处用 #,并且所有(字母)字符都被转换为大写。

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

访问函数

QStringinputMask() const
voidsetInputMask(const QString&inputMask)

另见maxLengthQChar::isLetter(),QChar::isNumber(),以及 QChar::digitValue

maxLength : int

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

如果文本太长,它将被截断到限制。

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

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

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

访问函数

intmaxLength() const
voidsetMaxLength(int)

另见inputMask

modified : bool

此属性包含是否已由用户修改行编辑内容。

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

这对于需要提供默认值但不知道默认值应该是多少的东西很有用(例如,它依赖于表单上的其他字段)。开始时不要有最好的默认值,一旦知道了默认值,如果 modified() 返回 false(用户没有输入任何文本),则插入默认值。

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

访问函数

boolisModified() const
voidsetModified(bool)

placeholderText : QString

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

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

通常,空的行编辑在获得焦点时也会显示占位符文本。但是,如果内容在水平方向上居中,当行编辑获得焦点时,占位符文本不会显示在光标下面。

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

访问函数

QStringplaceholderText() const
voidsetPlaceholderText(const QString&)

另见text

readOnly : bool

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

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

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

默认情况下,此属性为false

访问函数

boolisReadOnly() const
voidsetReadOnly(bool)

也请参阅setEnabled().

[只读] redoAvailable : const bool

此属性表示撤销操作是否可用。

一旦用户在行编辑中的文本上进行了一个或多个撤销操作,重做操作变为可用。

默认情况下,此属性为false

访问函数

boolisRedoAvailable() const

[只读] selectedText : const QString

此属性表示选定的文本。

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

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

访问函数

QStringselectedText() const

也请参阅hasSelectedText().

text : QString

此属性表示行编辑的文本。

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

文本截断到 maxLength() 长度。

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

访问函数

QStringtext() const
voidsetText(const QString &)

通知信号

voidtextChanged(const QString &text)

也请参阅insert() 和 clear().

[只读] undoAvailable : const bool

此属性表示撤销操作是否可用。

一旦用户修改了行编辑中的文本,撤销操作变为可用。

默认情况下,此属性为false

访问函数

boolisUndoAvailable() const

成员函数文档

[显式] QLineEdit::QLineEdit(QWidget *parent = nullptr)

构造一个不带文本的行编辑。

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

parent 参数被发送到 QWidget 构造函数。

也请参阅setText() 和 setMaxLength().

[显式] QLineEdit::QLineEdit(const QString &contents, QWidget *parent = nullptr)

构造一个包含文本 contents 的行编辑,作为 parent 的子项。

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

也请参阅text() 和 setMaxLength().

[虚 not except] QLineEdit::~QLineEdit()

销毁行编辑。

void QLineEdit::addAction(QAction *action, QLineEdit::ActionPosition position)

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

QAction *QLineEdit::addAction(const QIcon &icon, QLineEdit::ActionPosition position)

这是一个重载函数。

创建一个新的带有指定iconposition的操作。

void QLineEdit::backspace()

如果没有文本选中,删除文本光标左侧的字符,并将光标向左移动一个位置。如果有文本选中,光标将移动到选中文本的开头,并删除选中文本。

另请参阅 del()。

[override virtual protected] void QLineEdit::changeEvent(QEvent *ev)

重新实现: QWidget::changeEvent(QEvent *event)。

[slot] void QLineEdit::clear()

清除行编辑的内容。

另请参阅 setText() 和 insert()。

QCompleter *QLineEdit::completer() const

返回提供自动完成的当前QCompleter

另请参阅 setCompleter()。

[override virtual protected] void QLineEdit::contextMenuEvent(QContextMenuEvent *event)

重新实现: QWidget::contextMenuEvent(QContextMenuEvent *event)。

显示使用createStandardContextMenu()创建的常规上下文菜单。

如果您不想让行编辑有上下文菜单,可以将它的contextMenuPolicy设置为Qt::NoContextMenu。要自定义上下文菜单,重新实现此函数。要扩展标准上下文菜单,重新实现此函数,调用createStandardContextMenu(),并扩展返回的菜单。

void LineEdit::contextMenuEvent(QContextMenuEvent *event)
{
    QMenu *menu = createStandardContextMenu();
    menu->addAction(tr("My Menu Item"));
    //...
    menu->exec(event->globalPos());
    delete menu;
}

event参数用于获取事件发生时鼠标光标的位置。

另请参阅 setContextMenuPolicy()。

[slot] void QLineEdit::copy() const

如果有选中文本并且echoMode()是Normal,则将选中文本复制到剪贴板。

另请参阅 cut() 和 paste()。

QMenu *QLineEdit::createStandardContextMenu()

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

void QLineEdit::cursorBackward(bool mark, int steps = 1)

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

另请参阅 cursorForward()。

void QLineEdit::cursorForward(bool mark, int steps = 1)

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

另请参阅cursorBackward

int QLineEdit::cursorPositionAt(const QPoint &pos)

返回点pos下的光标位置。

[信号] void QLineEdit::cursorPositionChanged(int oldPos, int newPos)

当光标移动时,会发出此信号。之前的位置由oldPos给出,新的位置由newPos给出。

另请参阅setCursorPosition()和cursorPosition

[保护] QRect QLineEdit::cursorRect() const

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

void QLineEdit::cursorWordBackward(bool mark)

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

另请参阅cursorWordForward

void QLineEdit::cursorWordForward(bool mark)

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

另请参阅cursorWordBackward

[槽] void QLineEdit::cut()

将选中文本复制到剪贴板,如果存在则删除。如果echoMode()是正常

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

另请参阅copy(),paste()和setValidator

void QLineEdit::del()

如果没有文本被选中,删除文本光标右侧的字符。如果有任何文本被选中,光标将移动到选中文本的开始处,并删除选中文本。

另请参阅backspace

void QLineEdit::deselect()

取消任何选中文本。

另请参阅setSelection()和selectAll

[覆盖虚保护] void QLineEdit::dragEnterEvent(QDragEnterEvent *e)

重新实现了:QWidget::dragEnterEvent(QDragEnterEvent *event)。

[重写虚保护] void QLineEdit::dragLeaveEvent(QDragLeaveEvent *e)

重写: QWidget::dragLeaveEvent(QDragLeaveEvent *event).

[重写虚保护] void QLineEdit::dragMoveEvent(QDragMoveEvent *e)

重写: QWidget::dragMoveEvent(QDragMoveEvent *event).

[重写虚保护] void QLineEdit::dropEvent(QDropEvent *e)

重写: QWidget::dropEvent(QDropEvent *event).

[信号] void QLineEdit::editingFinished()

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

注意:如果文本编辑框上设置了 validator() 或 inputMask(),并使用 enter/return 时,只有当输入遵守 inputMask() 且 validator() 返回 QValidator::Acceptable 时,才会发出 editingFinished() 信号。

void QLineEdit::end(bool mark)

将文本光标移到行尾,除非它已经在那里。如果 mark 为 true,则选择文本到最后的位置。否则,如果移动光标,则取消选择任何选定的文本。

另请参阅:home().

[重写虚] bool QLineEdit::event(QEvent *e)

重写: QWidget::event(QEvent *event).

[重写虚保护] void QLineEdit::focusInEvent(QFocusEvent *e)

重写: QWidget::focusInEvent(QFocusEvent *event).

[重写虚保护] void QLineEdit::focusOutEvent(QFocusEvent *e)

重写: QWidget::focusOutEvent(QFocusEvent *event).

void QLineEdit::home(bool mark)

将文本光标移到行首,除非它已经在那里。如果 mark 为 true,则选择文本到第一个位置。否则,如果移动光标,则取消选择任何选定的文本。

另请参阅:end().

[虚保护] void QLineEdit::initStyleOption(QStyleOptionFrame *option) const

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

另请参阅:QStyleOption::initFrom().

[重写虚受保护] void QLineEdit::inputMethodEvent(QInputMethodEvent *e)

重新实现: QWidget::inputMethodEvent(QInputMethodEvent *event).

[重写虚] QVariant QLineEdit::inputMethodQuery(Qt::InputMethodQuery property) const

重新实现: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

[信号] void QLineEdit::inputRejected()

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

注意:即使仅接受文本的一部分,此信号仍然会发出。例如,如果设置了最大长度,并且在粘贴时剪贴板文本的长度超过了最大长度。

void QLineEdit::insert(const QString &newText)

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

另请参阅setText() 和 clear()。

[重写虚受保护] void QLineEdit::keyPressEvent(QKeyEvent *event)

重新实现: QWidget::keyPressEvent(QKeyEvent *event).

将给定的按键事件 event 转换为行编辑操作。

如果使用了 Return 或 Enter,并且当前文本有效(或可以通过校验器 调整为有效),则发出信号 returnPressed

另请参阅默认按键绑定

[重写虚受保护] void QLineEdit::keyReleaseEvent(QKeyEvent *e)

重新实现: QWidget::keyReleaseEvent(QKeyEvent *event).

[重写虚] QSize QLineEdit::minimumSizeHint() const

重新实现属性的访问函数: QWidget::minimumSizeHint.

返回行编辑的最小尺寸。

返回的宽度通常足以容纳至少一个字符。

[重写虚受保护] void QLineEdit::mouseDoubleClickEvent(QMouseEvent *e)

重新实现: QWidget::mouseDoubleClickEvent(QMouseEvent *event).

[重写虚受保护] void QLineEdit::mouseMoveEvent(QMouseEvent *e)

重实:QWidget::mouseMoveEvent(QMouseEvent *event)。

[重写 虚保护] void QLineEdit::mousePressEvent(QMouseEvent *e)

重实:QWidget::mousePressEvent(QMouseEvent *event)。

[重写 虚保护] void QLineEdit::mouseReleaseEvent(QMouseEvent *e)

重实:QWidget::mouseReleaseEvent(QMouseEvent *event)。

[槽] void QLineEdit::paintEvent(QPaintEvent *)

重实:QWidget::paintEvent(QPaintEvent *event)。

[槽] void QLineEdit::paste()

将剪贴板的文本插入到光标位置,删除任何已选文本,如果行编辑不是只读的。

如果最终结果对当前 验证器 无效,则不会发生任何操作。

另请参阅copy() 和 cut

[槽] void QLineEdit::redo()

如果重做操作可用,将重做最后的操作。

[信号] void QLineEdit::returnPressed()

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

注意:如果有在行编辑上设置的 验证器() 或 输入掩码(),只有当输入遵循 输入掩码() 并且验证器() 返回 QValidator::Acceptable 时,才会发出 returnPressed() 信号。

[槽] void QLineEdit::selectAll()

选择所有文本(突出显示)并将光标移动到末尾。

注意:这在插入默认值时很有用,因为如果用户在点击小部件之前输入,则选定的文本将被删除。

另请参阅setSelection() 和 deselect

[信号] void QLineEdit::selectionChanged()

每次选择更改时发出此信号。

另请参阅hasSelectedText() 和 selectedText

int QLineEdit::selectionEnd() const

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

另请参阅selectedTextselectionStart,和 selectionLength

int QLineEdit::selectionLength() const

返回选择的长度。

另请参阅selectedTextselectionStart,和 selectionEnd

int QLineEdit::selectionStart() const

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

另请参阅 selectedText(),selectionEnd(),以及 selectionLength()。

void QLineEdit::setCompleter(QCompleter *c)

将此行编辑设置为由补充器提供自动补全,c。使用 QCompleter::setCompletionMode() 设置补全模式。

要使用 QCompleterQValidatorQLineEdit::inputMask,您需要确保提供给 QCompleter 的模型包含有效条目。您可以使用 QSortFilterProxyModel 来确保 QCompleter 的模型只包含有效条目。

要删除补充器并禁用自动补全,传递 nullptr

另请参阅 completer() 和 QCompleter

void QLineEdit::setSelection(int start, int length)

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

另请参阅 deselectselectAll,以及 selectedText

void QLineEdit::setTextMargins(int left, int top, int right, int bottom)

设置框内文本周围的边距为 lefttoprightbottom

另请参阅 textMargins

void QLineEdit::setTextMargins(const QMargins &margins)

设置框内文本的 margins

另请参阅 textMargins

void QLineEdit::setValidator(const QValidator *v)

将行编辑的验证器设置为由 v

行编辑的 returnPressed() 和 editingFinished() 信号仅当 v 验证行编辑内容为 Acceptable 时才会发出。用户可以在编辑过程中将内容更改为任何 Intermediate 值,但将无法编辑文本为一个 v 验证为 Invalid 的值。

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

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

另请参阅 validatorhasAcceptableInputQIntValidatorQDoubleValidator,以及 QRegularExpressionValidator

[覆盖虚函数] QSize QLineEdit::sizeHint() const

重新实现了属性: QWidget::sizeHint 的访问函数。

返回该小部件的推荐大小。

返回的宽度,以像素为单位,通常足以容纳大约15到20个字符。

[信号] void QLineEdit::textChanged(const QString &text)

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

textEdited不同,此信号在文本被程序更改时也会发射,例如,通过调用setText()。

注意:属性 text 的通知信号。

[信号] void QLineEdit::textEdited(const QString &text)

每次编辑文本时都会发射此信号。参数text是新的文本。

textChanged不同,此信号在文字通过调用setText()程序更改时不会发射。

QMargins QLineEdit::textMargins() const

返回小部件的文本边距。

另请参阅: setTextMargins()。

[覆盖虚函数] void QLineEdit::timerEvent(QTimerEvent *e)

重新实现: QObject::timerEvent(QTimerEvent *event)

[槽函数] void QLineEdit::undo()

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

const QValidator *QLineEdit::validator() const

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

另请参阅: setValidator()。

© 2024 Qt公司。此处包含的文档贡献的版权属于其各自的拥有者。此处提供的文档受GNU自由文档许可第1.3版条款的许可,该许可由自由软件基金会发布。Qt及其相关徽标是芬兰和/或世界其他国家的Qt公司的商标。所有其他商标均为其各自所有者的财产。