QLineEdit Class
QLineEdit 控件是一个单行文本编辑器。更多内容...
| 标题: | #include <QLineEdit> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QWidget |
公共类型
| enum | ActionPosition { LeadingPosition, TrailingPosition } |
| enum | EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit } |
属性
|
|
公共函数
| QLineEdit(QWidget *parent = nullptr) | |
| QLineEdit(const QString &contents, QWidget *parent = nullptr) | |
| virtual | ~QLineEdit() |
| void | addAction(QAction *action, QLineEdit::ActionPosition position) |
| QAction * | addAction(const QIcon &icon, QLineEdit::ActionPosition position) |
| Qt::Alignment | alignment() const |
| void | backspace() |
| QCompleter * | completer() const |
| QMenu * | createStandardContextMenu() |
| void | cursorBackward(bool mark, int steps = 1) |
| void | cursorForward(bool mark, int steps = 1) |
| Qt::CursorMoveStyle | cursorMoveStyle() const |
| int | cursorPosition() const |
| int | cursorPositionAt(const QPoint &pos) |
| void | cursorWordBackward(bool mark) |
| void | cursorWordForward(bool mark) |
| void | del() |
| void | deselect() |
| QString | displayText() const |
| bool | dragEnabled() const |
| QLineEdit::EchoMode | echoMode() const |
| void | end(bool mark) |
| bool | hasAcceptableInput() const |
| bool | hasFrame() const |
| bool | hasSelectedText() const |
| void | home(bool mark) |
| QString | inputMask() const |
| void | insert(const QString &newText) |
| bool | isClearButtonEnabled() const |
| bool | isModified() const |
| bool | isReadOnly() const |
| bool | isRedoAvailable() const |
| bool | isUndoAvailable() const |
| int | maxLength() const |
| QString | placeholderText() const |
| QString | selectedText() const |
| int | selectionEnd() const |
| int | selectionLength() const |
| int | selectionStart() const |
| void | setAlignment(Qt::Alignment flag) |
| void | setClearButtonEnabled(bool enable) |
| void | setCompleter(QCompleter *c) |
| void | setCursorMoveStyle(Qt::CursorMoveStyle style) |
| void | setCursorPosition(int) |
| void | setDragEnabled(bool b) |
| void | setEchoMode(QLineEdit::EchoMode) |
| void | setFrame(bool) |
| void | setInputMask(const QString &inputMask) |
| void | setMaxLength(int) |
| void | setModified(bool) |
| void | setPlaceholderText(const QString &) |
| void | setReadOnly(bool) |
| void | setSelection(int start, int length) |
| void | setTextMargins(const QMargins &margins) |
| void | setTextMargins(int left, int top, int right, int bottom) |
| void | setValidator(const QValidator *v) |
| QString | text() const |
| QMargins | textMargins() const |
| const QValidator * | validator() const |
重新实现的公共函数
| virtual bool | event(QEvent *e) override |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery property) const override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
| virtual void | timerEvent(QTimerEvent *e) override |
公共插槽
| void | clear() |
| void | copy() const |
| void | cut() |
| void | paste() |
| void | redo() |
| void | selectAll() |
| void | setText(const QString &) |
| void | undo() |
信号
| void | cursorPositionChanged(int oldPos, int newPos) |
| void | editingFinished() |
| void | inputRejected() |
| void | returnPressed() |
| void | selectionChanged() |
| void | textChanged(const QString &text) |
| void | textEdited(const QString &text) |
受保护函数
| QRect | cursorRect() const |
| virtual void | initStyleOption(QStyleOptionFrame *option) const |
重新实现的受保护函数
| virtual void | changeEvent(QEvent *ev) override |
| virtual void | contextMenuEvent(QContextMenuEvent *event) override |
| virtual void | dragEnterEvent(QDragEnterEvent *e) override |
| virtual void | dragLeaveEvent(QDragLeaveEvent *e) override |
| virtual void | dragMoveEvent(QDragMoveEvent *e) override |
| virtual void | dropEvent(QDropEvent *e) override |
| virtual void | focusInEvent(QFocusEvent *e) override |
| virtual void | focusOutEvent(QFocusEvent *e) override |
| virtual void | inputMethodEvent(QInputMethodEvent *e) override |
| virtual void | keyPressEvent(QKeyEvent *event) override |
| virtual void | keyReleaseEvent(QKeyEvent *e) override |
| virtual void | mouseDoubleClickEvent(QMouseEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *) override |
详细说明

行编辑控件允许用户输入和编辑单行纯文本,并提供有用的编辑功能,包括撤销和重做、剪切和粘贴以及拖放。
通过更改行编辑控件的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 的多种用法,请参阅“行编辑示例”,该示例还提供了一系列行编辑示例,展示了各种属性及验证器对用户输入和输出的影响。
设置边框
默认情况下,QLineEdit 会显示平台样式指南中规定的边框。您可以通过调用setFrame(false) 来关闭边框。
默认键位绑定
下表描述了默认的键绑定。
注意: 行编辑框 还提供了一个上下文菜单(通常通过右键单击调用),其中包含下面列出的部分编辑选项。
| 键盘快捷键 | 操作 |
|---|---|
| 向左箭头 | 将光标向左移动一个字符。 |
| Shift+左箭头 | 将光标向左移动并选中一个字符。 |
| 右箭头 | 将光标向右移动一个字符。 |
| Shift+右箭头 | 将光标向右移动并选中一个字符。 |
| Home | 将光标移至行首。 |
| End | 将光标移至行尾。 |
| Backspace | 删除光标左侧的字符。 |
| Ctrl+Backspace | 删除光标左侧的单词。 |
| Delete | 删除光标右侧的字符。 |
| Ctrl+Delete | 删除光标右侧的单词。 |
| Ctrl+A | 全选。 |
| Ctrl+C | 将选中的文本复制到剪贴板。 |
| Ctrl+Insert | 将选中的文本复制到剪贴板。 |
| Ctrl+K | 删除至行尾。 |
| Ctrl+V | 将剪贴板中的文本粘贴到行编辑框中。 |
| Shift+Insert | 将剪贴板中的文本粘贴到行编辑框中。 |
| Ctrl+X | 删除所选文本并将其复制到剪贴板。 |
| Shift+Delete | 删除所选文本并将其复制到剪贴板。 |
| Ctrl+Z | 撤销上一步操作。 |
| Ctrl+Y | 重做上一次撤销的操作。 |
任何其他代表有效字符的按键操作,都会将该字符插入到行编辑框中。
另请参阅 QTextEdit 、QLabel 、QComboBox 以及“行编辑示例”。
成员类型文档
enum QLineEdit::ActionPosition
此枚举类型描述了行编辑框应如何显示待添加的操作控件。
| 常量 | 值 | 描述 |
|---|---|---|
QLineEdit::LeadingPosition | 0 | 当使用布局方向Qt::LeftToRight 时,控件显示在文本左侧;当使用Qt::RightToLeft 时,则显示在文本右侧。 |
QLineEdit::TrailingPosition | 1 | 当使用布局方向Qt::LeftToRight 时,控件显示在文本的右侧;当使用Qt::RightToLeft 时,则显示在文本的左侧。 |
另请参阅 addAction()、removeAction() 和QWidget::layoutDirection 。
enum QLineEdit::EchoMode
此枚举类型描述了行编辑框应如何显示其内容。
| 常量 | 值 | 描述 |
|---|---|---|
QLineEdit::Normal | 0 | 在输入时显示字符。这是默认设置。 |
QLineEdit::NoEcho | 1 | 不显示任何内容。这可能适用于密码,因为即使密码的长度也应保密。 |
QLineEdit::Password | 2 | 显示与平台相关的密码掩码字符,而不是实际输入的字符。 |
QLineEdit::PasswordEchoOnEdit | 3 | 仅在输入时显示字符。否则,显示字符的方式与Password 相同。 |
另请参阅 setEchoMode() 和echoMode()。
属性文档
[read-only] acceptableInput : bool
该属性用于表示输入是否满足inputMask 和验证规则。
默认情况下,此属性为true 。
访问函数:
| bool | hasAcceptableInput() const |
另请参阅 setInputMask() 和setValidator()。
alignment : Qt::Alignment
该属性用于设置行编辑控件的对齐方式。
此处允许设置水平和垂直对齐方式,Qt::AlignJustify 将映射为Qt::AlignLeft 。
默认情况下,此属性包含 `Qt::AlignLeft ` 和 `Qt::AlignVCenter` 的组合。
访问函数:
| Qt::Alignment | alignment() const |
| void | setAlignment(Qt::Alignment flag) |
另请参阅 Qt::Alignment 。
clearButtonEnabled : bool
此属性控制当行编辑框不为空时是否显示“清除”按钮。
如果启用此属性,当行编辑框中包含文本时,将显示尾部的“clear ”按钮。否则,行编辑框不会显示“clear ”按钮(默认行为)。
访问函数:
| bool | isClearButtonEnabled() const |
| void | setClearButtonEnabled(bool enable) |
另请参阅 addAction() 和removeAction()。
cursorMoveStyle : Qt::CursorMoveStyle
此属性用于设置该行编辑框中光标的移动方式。
当此属性设置为Qt::VisualMoveStyle 时,行编辑框将采用可视移动模式。无论文本的书写方向如何,按下左箭头键都会使光标向左移动。右箭头键的行为与此相同。
当该属性设置为Qt::LogicalMoveStyle (默认值)时,在从左到右(LTR)的文本块中,使用左箭头键会使光标位置向前移动,而使用右箭头键则会使光标位置向后移动。如果文本块是从右到左(RTL)的,则行为相反。
访问函数:
| Qt::CursorMoveStyle | cursorMoveStyle() const |
| void | setCursorMoveStyle(Qt::CursorMoveStyle style) |
cursorPosition : int
该属性保存此行编辑控件的当前光标位置。
设置光标位置会在适当的时候触发重绘。
默认情况下,该属性的值为 0。
访问函数:
| int | cursorPosition() const |
| void | setCursorPosition(int) |
[read-only] displayText : QString
该属性存储显示的文本。
如果echoMode 的值为Normal ,则返回的结果与text()相同。如果EchoMode 的值为Password 或PasswordEchoOnEdit ,则返回由平台相关的密码掩码字符组成的字符串(例如“******”)。如果EchoMode 的值为NoEcho ,则返回空字符串。
默认情况下,该属性包含一个空字符串。
访问函数:
| QString | displayText() const |
另请参阅 setEchoMode()、text() 和EchoMode 。
dragEnabled : bool
此属性控制当用户在已选中的文本上按下并移动鼠标时,行编辑控件是否开始拖动操作。
默认情况下,拖动功能被禁用。
访问函数:
| bool | dragEnabled() const |
| void | setDragEnabled(bool b) |
echoMode : EchoMode
该属性用于设置行编辑控件的回显模式。
回显模式决定了行编辑框中输入的文本如何显示(或回显)给用户。
最常见的设置是Normal ,在此模式下,用户输入的文本将原样显示。QLineEdit 还支持一些允许隐藏或遮盖输入文本的模式:包括NoEcho 、Password 和PasswordEchoOnEdit 。
该小部件的显示效果以及复制或拖动文本的功能均受此设置影响。
默认情况下,此属性设置为Normal 。
访问函数:
| QLineEdit::EchoMode | echoMode() const |
| void | setEchoMode(QLineEdit::EchoMode) |
另请参阅 EchoMode 和displayText()。
frame : bool
该属性控制行编辑框是否以带边框的形式显示。
如果启用(默认设置),则行编辑控件会在边框内显示自身。否则,行编辑控件将不显示任何边框。
访问函数:
| bool | hasFrame() const |
| void | setFrame(bool) |
[read-only] hasSelectedText : bool
该属性表示是否选中了任何文本。
如果用户已选中部分或全部文本,hasSelectedText() 将返回true 。否则,它将返回false 。
默认情况下,该属性的值为false 。
访问函数:
| bool | hasSelectedText() const |
另请参阅 selectedText()。
inputMask : QString
该属性用于存储验证输入掩码。
设置QLineEdit 的验证掩码。可以使用验证器代替掩码,或与掩码结合使用;请参阅setValidator()。默认值为空字符串,这意味着不使用任何输入掩码。
若要取消设置掩码并恢复QLineEdit 的正常运行,请传入一个空字符串。
输入掩码是一个输入模板字符串。它可以包含以下元素:
| 掩码字符 | 定义在此位置被视为有效的输入字符的Category 。 |
| 元字符 | 具有各种特殊含义(详见下文)。 |
| 分隔符 | 所有其他字符均被视为不可更改的分隔符。 |
下表列出了可在输入掩码中使用的掩码字符和元字符。
| 掩码字符 | 含义 |
|---|---|
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。 |
[ ] { } | 保留。 |
\ | 使用\ 对上述特殊字符进行转义,以便将其用作分隔符。 |
创建或清空时,行编辑框将填充输入掩码字符串的副本,其中元字符已被删除,掩码字符已被空白字符(默认情况下为space )替换。
当设置了输入掩码时,text() 方法将返回行编辑框内容的一个修改副本,其中所有空格字符已被删除。可以使用displayText() 读取未修改的内容。
如果行编辑框的当前内容不符合输入掩码的要求,hasAcceptableInput() 方法将返回 false。
示例:
| 掩码 | 说明 |
|---|---|
000.000.000.000;_ | IP 地址;空格被视为_ 。 |
HH:HH:HH:HH:HH:HH;_ | MAC 地址 |
0000-00-00 | ISO 日期;留空时视为space |
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# | 许可证号;留空时默认值为# ,且所有(字母)字符均转换为大写。 |
要进行范围控制(例如,针对 IP 地址),请将掩码与validators 结合使用。
访问函数:
| QString | inputMask() const |
| void | setInputMask(const QString &inputMask) |
另请参阅 maxLength 、QChar::isLetter()、QChar::isNumber() 和QChar::digitValue()。
maxLength : int
该属性用于指定文本的最大允许长度。
如果文本过长,则会在该限制处被截断。
如果发生截断,则所选文本将被取消选择,光标位置将设置为 0,并显示字符串的前一部分。
如果行编辑框具有输入掩码,则该掩码定义了字符串的最大长度。
默认情况下,该属性的值为 32767。
访问函数:
| int | maxLength() const |
| void | setMaxLength(int) |
另请参阅 inputMask 。
modified : bool
该属性用于指示行编辑框的内容是否已被用户修改。
QLineEdit 绝不会读取该修改标志;其默认值为 false,当用户更改行编辑框的内容时,该标志会自动变为 true。
这对于需要提供默认值但起初并不知道默认值应该是什么的情况非常有用(例如,默认值取决于表单上的其他字段)。在没有最佳默认值的情况下启动行编辑框,当知道默认值后,如果 modified() 返回false (即用户尚未输入任何文本),则插入默认值。
调用 `setText()` 会将 modified 标志重置为 false。
访问函数:
| bool | isModified() const |
| void | setModified(bool) |
placeholderText : QString
此属性用于存储行编辑控件的占位符文本。
设置此属性后,只要行编辑框为空,它就会显示灰色的占位符文本。
通常情况下,空的行编辑控件即使获得了焦点,也会显示占位符文本。但是,如果内容在水平方向居中,则当行编辑控件获得焦点时,光标下方不会显示占位符文本。
默认情况下,此属性包含一个空字符串。
访问函数:
| QString | placeholderText() const |
| void | setPlaceholderText(const QString &) |
另请参阅 text()。
readOnly : bool
该属性用于指定行编辑框是否为只读。
在只读模式下,用户仍可将文本复制到剪贴板,或拖放文本(前提是echoMode()的返回值为Normal ),但无法对其进行编辑。
QLineEdit 在只读模式下,不会显示光标。
默认情况下,此属性的值为false 。
访问函数:
| bool | isReadOnly() const |
| void | setReadOnly(bool) |
另请参阅 setEnabled()。
[read-only] redoAvailable : bool
该属性用于指定是否支持“重做”操作。
当用户对行编辑框中的文本执行了一次或多次撤销操作后,重做功能即会启用。
默认情况下,此属性的值为false 。
访问函数:
| bool | isRedoAvailable() const |
[read-only] selectedText : QString
该属性存储所选文本。
如果没有选中的文本,则该属性的值为空字符串。
默认情况下,该属性包含一个空字符串。
访问函数:
| QString | selectedText() const |
另请参阅 hasSelectedText()。
text : QString
该属性存储行编辑控件中的文本。
设置此属性将清除选定内容、清除撤销/重做历史记录、将光标移至行尾,并将modified 属性重置为false。使用setText()插入文本时,不会对文本进行验证。
文本将被截断为maxLength()指定的长度。
默认情况下,此属性包含一个空字符串。
访问函数:
| QString | text() const |
| void | setText(const QString &) |
通知器信号:
| void | textChanged(const QString &text) |
[read-only] undoAvailable : bool
该属性用于指定是否支持“撤销”功能。
一旦用户修改了行编辑框中的文本,撤销功能即会生效。
默认情况下,此属性的值为false 。
访问函数:
| bool | isUndoAvailable() const |
成员函数文档
[explicit] QLineEdit::QLineEdit(QWidget *parent = nullptr)
创建一个不含文本的行编辑控件。
文本的最大长度设置为 32767 个字符。
parent 参数将传递给QWidget 构造函数。
另请参阅 setText() 和setMaxLength()。
[explicit] QLineEdit::QLineEdit(const QString &contents, QWidget *parent = nullptr)
创建一个包含文本“contents ”的行编辑控件,并将其作为parent 的子控件。
光标位置设置为行尾,最大文本长度设置为 32767 个字符。
另请参阅 text() 和setMaxLength()。
[virtual noexcept] QLineEdit::~QLineEdit()
清除行编辑内容。
void QLineEdit::addAction(QAction *action, QLineEdit::ActionPosition position)
将“action ”添加到position 中的操作列表中。
QAction *QLineEdit::addAction(const QIcon &icon, QLineEdit::ActionPosition position)
在position 上,使用给定的icon 创建一个新的操作。
这是一个重载函数。
void QLineEdit::backspace()
如果未选中任何文本,则删除文本光标左侧的字符,并将光标向左移动一个位置。如果选中了任何文本,则将光标移至所选文本的开头,并删除所选文本。
另请参阅 del()。
[override virtual protected] void QLineEdit::changeEvent(QEvent *ev)
重写了:QWidget::changeEvent(QEvent *event)。
[slot] void QLineEdit::clear()
清除行编辑框中的内容。
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 。
QMenu *QLineEdit::createStandardContextMenu()
创建标准上下文菜单,当用户用鼠标右键单击行编辑框时,该菜单会显示出来。该函数由默认的contextMenuEvent()处理程序调用。弹出菜单的所有权将转移给调用方。
void QLineEdit::cursorBackward(bool mark, int steps = 1)
将光标向后移动steps 个字符。如果mark 为真,则移动到的每个字符都会被添加到选区中;如果mark 为假,则清空选区。
另请参阅 cursorForward()。
void QLineEdit::cursorForward(bool mark, int steps = 1)
将光标向前移动steps 个字符。如果mark 为真,则移动到的每个字符都会被添加到选区中;如果mark 为假,则清空选区。
另请参阅 cursorBackward()。
int QLineEdit::cursorPositionAt(const QPoint &pos)
返回光标位于点pos 下方的位置。
[signal] void QLineEdit::cursorPositionChanged(int oldPos, int newPos)
每当光标移动时,都会发出此信号。先前位置由oldPos 给出,新位置由newPos 给出。
另请参阅 setCursorPosition() 和cursorPosition()。
[protected] QRect QLineEdit::cursorRect() const
返回一个包含行编辑光标的矩形。
void QLineEdit::cursorWordBackward(bool mark)
将光标向后移动一个单词。如果mark 为真,则该单词也会被选中。
另请参阅 cursorWordForward()。
void QLineEdit::cursorWordForward(bool mark)
将光标向前移动一个单词。如果mark 为真,则该单词也会被选中。
另请参阅 cursorWordBackward()。
[slot] void QLineEdit::cut()
将选中的文本复制到剪贴板,并删除剪贴板中的内容(如有),前提是echoMode()的返回值为Normal 。
如果当前验证器不允许删除所选文本,则 cut() 将仅复制而不删除。
另请参阅 copy()、paste() 和setValidator()。
void QLineEdit::del()
如果未选中任何文本,则删除文本光标右侧的字符。如果选中了文本,则光标移至所选文本的开头,并删除所选文本。
另请参阅 backspace()。
void QLineEdit::deselect()
取消选中任何已选中的文本。
另请参阅 setSelection() 和selectAll()。
[override virtual protected] void QLineEdit::dragEnterEvent(QDragEnterEvent *e)
重写了:QWidget::dragEnterEvent(QDragEnterEvent *event)。
[override virtual protected] void QLineEdit::dragLeaveEvent(QDragLeaveEvent *e)
重写了:QWidget::dragLeaveEvent(QDragLeaveEvent *event)。
[override virtual protected] void QLineEdit::dragMoveEvent(QDragMoveEvent *e)
重写了:QWidget::dragMoveEvent(QDragMoveEvent *event)。
[override virtual protected] void QLineEdit::dropEvent(QDropEvent *e)
重写了:QWidget::dropEvent(QDropEvent *event)。
[signal] void QLineEdit::editingFinished()
当按下回车键或Enter键时,或者当行编辑框失去焦点且其内容自上次发出此信号以来已发生变化时,会发出此信号。
注意:如果 行编辑框上设置了validator()或inputMask(),且用户按下了回车键或Enter键,则只有当输入符合inputMask()的规范,且validator()返回QValidator::Acceptable 时,editingFinished()信号才会被触发。
void QLineEdit::end(bool mark)
将文本光标移至行尾(除非光标已位于行尾)。如果mark 为真,则向行尾方向选中文本。否则,如果光标移动,则任何已选中的文本将被取消选中。
另请参阅 home()。
[override virtual] bool QLineEdit::event(QEvent *e)
重写了:QWidget::event(QEvent *event)。
[override virtual protected] void QLineEdit::focusInEvent(QFocusEvent *e)
重写了:QWidget::focusInEvent(QFocusEvent *event)。
[override virtual protected] void QLineEdit::focusOutEvent(QFocusEvent *e)
重写了:QWidget::focusOutEvent(QFocusEvent *event)。
void QLineEdit::home(bool mark)
将文本光标移至行首(除非光标已位于行首)。如果mark 为真,则向行首方向选中文本。否则,如果光标被移动,则任何已选中的文本将被取消选中。
另请参阅 end()。
[virtual protected] void QLineEdit::initStyleOption(QStyleOptionFrame *option) const
使用QLineEdit 中的值初始化option 。当子类需要QStyleOptionFrame 时,但又不想自己填写所有信息,此方法非常有用。
另请参阅 QStyleOption::initFrom()。
[override virtual protected] void QLineEdit::inputMethodEvent(QInputMethodEvent *e)
重写了:QWidget::inputMethodEvent(QInputMethodEvent *event)。
[override virtual] QVariant QLineEdit::inputMethodQuery(Qt::InputMethodQuery property) const
重写了:QWidget::inputMethodQuery (Qt::InputMethodQuery query)const。
[signal] void QLineEdit::inputRejected()
当用户使用一个不被视为有效输入的键时,会触发此信号。例如,如果使用某个键导致验证器的validate()调用返回Invalid 。另一种情况是,当尝试输入的字符数量超过行编辑框的最大长度时。
注意: 即使仅接受了部分文本,该 信号仍会发出。例如,如果设置了最大长度,而粘贴时剪贴板中的文本长度超过了该最大长度。
void QLineEdit::insert(const QString &newText)
删除所选文本,插入newText ,并验证结果。如果结果有效,则将新文本设置为行编辑框的新内容。
[override virtual protected] void QLineEdit::keyPressEvent(QKeyEvent *event)
重写:QWidget::keyPressEvent(QKeyEvent *event)。
将给定的按键事件event 转换为行编辑操作。
如果按下了 Return 或 Enter 键,且当前文本有效(或可通过验证器made valid 验证为有效),则会发出信号returnPressed()。
另请参阅 Default Key Bindings 。
[override virtual protected] void QLineEdit::keyReleaseEvent(QKeyEvent *e)
重写了:QWidget::keyReleaseEvent(QKeyEvent *event)。
[override virtual] QSize QLineEdit::minimumSizeHint() const
重新实现了属性QWidget::minimumSizeHint 的访问函数。
返回行编辑框的最小尺寸。
返回的宽度通常足以容纳至少一个字符。
[override virtual protected] void QLineEdit::mouseDoubleClickEvent(QMouseEvent *e)
重写了:QWidget::mouseDoubleClickEvent(QMouseEvent *event)。
[override virtual protected] void QLineEdit::mouseMoveEvent(QMouseEvent *e)
重写了:QWidget::mouseMoveEvent(QMouseEvent *event)。
[override virtual protected] void QLineEdit::mousePressEvent(QMouseEvent *e)
重写了:QWidget::mousePressEvent(QMouseEvent *event)。
[override virtual protected] void QLineEdit::mouseReleaseEvent(QMouseEvent *e)
重写了:QWidget::mouseReleaseEvent(QMouseEvent *event)。
[override virtual protected] void QLineEdit::paintEvent(QPaintEvent *)
重写了:QWidget::paintEvent(QPaintEvent *event)。
[slot] void QLineEdit::paste()
将剪贴板中的文本插入到光标位置,并删除任何已选中的文本,前提是该行编辑框未被read-only 。
如果最终结果对当前的validator 而言无效,则不会执行任何操作。
[slot] void QLineEdit::redo()
如果 `redo` 的值为 `available`,则重做上一次操作。
[signal] void QLineEdit::returnPressed()
当按下“返回”或“回车”键时,会发出此信号。
注意:如果 行编辑控件上设置了validator()或inputMask(),则只有当输入符合inputMask()的条件,且validator()返回QValidator::Acceptable 时,returnPressed()信号才会被触发。
[slot] void QLineEdit::selectAll()
选中所有文本(将其高亮显示),并将光标移至末尾。
注意: 当已插入默认值时,此操作 非常有用,因为如果用户在点击控件之前进行输入,所选文本将会被删除。
另请参阅 setSelection() 和deselect()。
[signal] void QLineEdit::selectionChanged()
每当选择内容发生变化时,都会发出此信号。
另请参阅 hasSelectedText() 和selectedText()。
int QLineEdit::selectionEnd() const
返回行编辑框中选区后紧接着的字符的索引(如果未选中任何文本,则返回 -1)。
另请参阅 selectedText()、selectionStart() 和selectionLength()。
int QLineEdit::selectionLength() const
返回所选内容的长度。
另请参阅 selectedText()、selectionStart(),以及selectionEnd()。
int QLineEdit::selectionStart() const
返回行编辑框中首个被选中字符的索引(如果未选中任何文本,则返回 -1)。
另请参阅 selectedText()、selectionEnd() 和selectionLength()。
void QLineEdit::setCompleter(QCompleter *c)
将此行编辑框设置为从补全器c 获取自动补全。补全模式通过QCompleter::setCompletionMode() 进行设置。
若要将QCompleter 与QValidator 或QLineEdit::inputMask 配合使用,需确保提供给QCompleter 的模型包含有效的条目。您可以使用QSortFilterProxyModel 来确保QCompleter 的模型仅包含有效的条目。
要移除自动补全组件并禁用自动补全功能,请传入一个nullptr 。
另请参阅 completer() 和QCompleter 。
void QLineEdit::setSelection(int start, int length)
从位置start 开始,选取length 个字符的文本。允许使用负长度。
另请参阅 deselect()、selectAll() 和selectedText()。
void QLineEdit::setTextMargins(const QMargins &margins)
设置框架内文本的margins 属性。
另请参阅 textMargins()。
void QLineEdit::setTextMargins(int left, int top, int right, int bottom)
将框架内文本四周的边距分别设置为left 、top 、right 和bottom 。
另请参阅 textMargins()。
void QLineEdit::setValidator(const QValidator *v)
将行编辑框值的验证器设置为v 。
只有当v 将行编辑框的内容验证为Acceptable 时,该行编辑框的returnPressed()和editingFinished()信号才会被触发。用户在编辑过程中可以将内容更改为任何Intermediate 值,但系统会阻止用户将文本编辑为v 验证为Invalid 的值。
这使您能够限制编辑完成后将要存储的文本,同时让用户拥有足够的自由度,将文本从一种有效状态编辑为另一种有效状态。
要移除当前的输入验证器,请传递nullptr 。初始设置是不使用任何输入验证器(接受任何输入,直到调用maxLength()) 为止。
另请参阅 validator()、hasAcceptableInput()、QIntValidator 、QDoubleValidator 以及QRegularExpressionValidator 。
[override virtual] QSize QLineEdit::sizeHint() const
重新实现了属性QWidget::sizeHint 的访问函数。
返回该控件的建议尺寸。
返回的宽度(以像素为单位)通常足以显示约 15 到 20 个字符。
[signal] void QLineEdit::textChanged(const QString &text)
每当文本发生变化时,都会触发此信号。text 参数即为新文本。
与textEdited()不同,当文本通过编程方式被修改时(例如调用setText()),也会触发此信号。
注意: 这是属性text 的通知器 信号。
[signal] void QLineEdit::textEdited(const QString &text)
每当文本被编辑时,都会触发此信号。text 参数即为新文本。
与 `textChanged()` 不同,当文本通过编程方式(例如调用 `setText()`)被修改时,不会触发此信号。
QMargins QLineEdit::textMargins() const
返回控件的文本边距。
另请参阅 ` setTextMargins()`。
[override virtual] void QLineEdit::timerEvent(QTimerEvent *e)
重写了:QObject::timerEvent(QTimerEvent *event)。
[slot] void QLineEdit::undo()
如果 undo 的值为available ,则撤销上一次操作。取消当前的所有选中状态,并将选区起始位置更新为当前光标位置。
const QValidator *QLineEdit::validator() const
返回指向当前输入验证器的指针;如果未设置任何验证器,则返回nullptr 。
另请参阅 setValidator()。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.