QLineEdit Class
QLineEdit widget 是一个单行文本编辑器。更多
头文件: | #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 的多种使用方式的更多信息,请参阅行编辑示例,该示例还提供了一些行编辑示例,展示了各种属性和验证器对用户提供的输入和输出的影响。
设置框架
默认情况下,QLineEdits 具有平台样式指南中指定的框架。您可以通过调用setFrame(false) 关闭框架。
默认按键绑定
下表描述了默认按键绑定。
注: 行编辑还提供了一个上下文菜单(通常通过右键单击调用),可显示下面列出的一些编辑选项。
按键 | 操作 |
---|---|
左箭头 | 将光标向左移动一个字符。 |
Shift+ 左箭头 | 向左移动并选择一个字符。 |
右箭头 | 将光标向右移动一个字符。 |
Shift+ 右箭头 | 向右移动并选择一个字符。 |
首页 | 将光标移至行首。 |
结束 | 将光标移至行尾。 |
退格 | 删除光标左侧的字符。 |
Ctrl+Backspace | 删除光标左侧的单词。 |
删除 | 删除光标右侧的字符。 |
Ctrl+Delete | 删除光标右侧的单词。 |
Ctrl+A | 全选。 |
Ctrl+C | 将选中的文本复制到剪贴板。 |
Ctrl+Insert | 将选中的文本复制到剪贴板。 |
Ctrl+K | 删除至行尾。 |
Ctrl+V | 将剪贴板中的文本粘贴到编辑行中。 |
Shift+ 插入 | 将剪贴板文本粘贴到行编辑中。 |
Ctrl+X | 删除选中的文本并将其复制到剪贴板。 |
Shift+ 删除 | 删除选中的文本并将其复制到剪贴板。 |
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 : const 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 : const 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 。
widget 的显示以及复制或拖动文本的功能都会受到此设置的影响。
默认情况下,此属性设置为Normal 。
访问功能:
QLineEdit::EchoMode | echoMode() const |
void | setEchoMode(QLineEdit::EchoMode) |
另请参阅 EchoMode 和displayText()。
frame : bool
该属性用于确定线条编辑器是否在框架内绘制。
如果启用(默认值),线条编辑器将在框架内绘制。否则,线条编辑器在绘制时不带任何框架。
访问功能:
bool | hasFrame() const |
void | setFrame(bool) |
[read-only]
hasSelectedText : const 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 | 需要数字类别中大于 0 的字符,如 1-9。 |
d | 允许使用但不要求使用 "数字 "类别中大于 0 的字符,如 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() 会将已修改标记重置为 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 : const bool
此属性表示重做是否可用。
一旦用户对行编辑器中的文本执行了一次或多次撤销操作,重做就变得可用。
默认情况下,此属性为false
。
访问功能:
bool | isRedoAvailable() const |
[read-only]
selectedText : const QString
该属性用于保存选中的文本。
如果没有选定文本,该属性的值就是空字符串。
默认情况下,此属性包含空字符串。
访问函数:
QString | selectedText() const |
另请参阅 hasSelectedText()。
text : QString
该属性用于保存行编辑文本。
设置该属性会清除选择、清除撤销/重做历史、将光标移至行尾,并将modified 属性重置为 false。使用 setText() 插入文本时,文本不会被验证。
文本将被截断为maxLength() 长度。
默认情况下,该属性包含空字符串。
访问功能:
QString | text() const |
void | setText(const QString &) |
Notifier 信号:
void | textChanged(const QString &text) |
[read-only]
undoAvailable : const 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)
这是一个重载函数。
使用给定的icon 在position 创建一个新动作。
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 为 true,则也会选中该字。
另请参阅 cursorWordForward() 。
void QLineEdit::cursorWordForward(bool mark)
将光标向前移动一个单词。如果mark 为 true,则也会选中该字。
另请参阅 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()
使用回车或回车键时,或行编辑器失去焦点且其内容自上次发出该信号后发生变化时,都会发出该信号。
注意: 如果在行编辑器上设置了validator() 或inputMask() 且使用了回车/回车键,则只有在输入跟随inputMask() 且validator() 返回QValidator::Acceptable 时,才会发出 editingFinished() 信号。
void QLineEdit::end(bool mark)
将文本光标移到行尾,除非光标已经在行尾。如果mark 为 true,则会选择最后一个位置的文本。否则,如果光标被移动,任何选中的文本都将取消选中。
另请参阅 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 为 true,则文本会被选中到第一个位置。否则,如果光标移动,任何选中的文本都将取消选中。
另请参阅 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()
如果重做是available ,则重做最后一次操作。
[signal]
void QLineEdit::returnPressed()
使用回车键或回车键时会发出该信号。
注意: 如果在行编辑中设置了validator() 或inputMask(),则只有在inputMask() 之后输入且validator() 返回QValidator::Acceptable 时,才会发出 returnPressed() 信号。
[slot]
void QLineEdit::selectAll()
选择所有文本(高亮显示)并将光标移至末尾。
注意: 这在插入默认值时非常有用,因为如果用户在点击 widget 之前键入,所选文本将被删除。
另请参阅 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 。
行编辑的returnPressed() 和editingFinished() 信号只有在v 将行编辑的内容验证为Acceptable 时才会发出。在编辑过程中,用户可以将内容更改为任何Intermediate 值,但不能将文本编辑为v 验证为Invalid 的值。
这样既可以限制编辑完成后存储的文本,又可以让用户有足够的自由将文本从一种有效状态编辑到另一种有效状态。
要移除当前的输入验证器,请通过nullptr
。初始设置为无输入验证器(可接受任何输入,直至maxLength()).
另请参阅 validator(),hasAcceptableInput(),QIntValidator,QDoubleValidator, 和QRegularExpressionValidator 。
[override virtual]
QSize QLineEdit::sizeHint() const
重新实现属性QWidget::sizeHint 的访问函数。
返回 widget 的推荐尺寸。
返回的宽度(以像素为单位)通常足以容纳 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
返回 widget 的文本边距。
另请参阅 setTextMargins()。
[override virtual]
void QLineEdit::timerEvent(QTimerEvent *e)
重实现:QObject::timerEvent(QTimerEvent *event).
[slot]
void QLineEdit::undo()
如果撤消是available ,则撤消上次操作。取消选择任何当前选区,并将选区起始位置更新为当前光标位置。
const QValidator *QLineEdit::validator() const
返回指向当前输入验证器的指针,如果未设置验证器,则返回nullptr
。
另请参阅 setValidator().
© 2025 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.