Класс QLineEdit
Виджет QLineEdit — это однострочный редактор текста. Подробнее...
| Заголовок: | #include <QLineEdit> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: | QWidget |
Общие типы
| перечисление | ActionPosition { LeadingPosition, TrailingPosition } |
| перечисление | EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit } |
Свойства
|
|
Общедоступные функции
| QLineEdit(const QString &contents, QWidget *parent = nullptr) | |
| QLineEdit(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(int left, int top, int right, int bottom) |
| void | setTextMargins(const QMargins &margins) |
| void | setValidator(const QValidator *v) |
| QString | text() const |
| QMargins | textMargins() const |
| const QValidator * | validator() const |
Реализованные публичные функции
| виртуальный bool | event(QEvent *e) override |
| виртуальный QVariant | inputMethodQuery(Qt::InputMethodQuery property) const override |
| виртуальный QSize | minimumSizeHint() const override |
| виртуальный QSize | sizeHint() const override |
| виртуальный void | timerEvent(QTimerEvent *e) override |
Public Slots
| void | clear() |
| void | copy() const |
| void | cut() |
| void | paste() |
| void | redo() |
| void | selectAll() |
| void | setText(const QString &) |
| void | undo() |
Signals
| void | cursorPositionChanged(int oldPos, int newPos) |
| void | editingFinished() |
| void | inputRejected() |
| void | returnPressed() |
| void | selectionChanged() |
| void | textChanged(const QString &text) |
| void | textEdited(const QString &text) |
Protected Functions
| QRect | cursorRect() const |
| виртуальный void | initStyleOption(QStyleOptionFrame *option) const |
Реализованные защищенные функции
| виртуальный void | changeEvent(QEvent *ev) override |
| виртуальный void | contextMenuEvent(QContextMenuEvent *event) override |
| виртуальный void | dragEnterEvent(QDragEnterEvent *e) override |
| виртуальный void | dragLeaveEvent(QDragLeaveEvent *e) override |
| виртуальный void | dragMoveEvent(QDragMoveEvent *e) override |
| виртуальный void | dropEvent(QDropEvent *e) override |
| виртуальный void | focusInEvent(QFocusEvent *e) override |
| виртуальный void | focusOutEvent(QFocusEvent *e) override |
| виртуальный void | inputMethodEvent(QInputMethodEvent *e) override |
| виртуальный void | keyPressEvent(QKeyEvent *event) override |
| виртуальный void | keyReleaseEvent(QKeyEvent *) override |
| виртуальный void | mouseDoubleClickEvent(QMouseEvent *e) override |
| виртуальный void | mouseMoveEvent(QMouseEvent *e) override |
| виртуальный void | mousePressEvent(QMouseEvent *e) override |
| виртуальный void | mouseReleaseEvent(QMouseEvent *e) override |
| виртуальный void | paintEvent(QPaintEvent *) override |
Подробное описание
Поле ввода строки позволяет пользователю вводить и редактировать одну строку простого текста с полезным набором функций редактирования, включая отмену и повторение, вырезание и вставку, а также перетаскивание (см. setDragEnabled()).
Изменяя echoMode() поля ввода строки, его также можно использовать в качестве поля «только для записи», например, для ввода паролей.
Длина текста может быть ограничена maxLength(). Текст можно произвольно ограничить с помощью validator() или inputMask(), или и того, и другого. При переключении между валидатором и маской ввода в одном поле ввода строки лучше очистить валидатор или маску ввода, чтобы избежать неопределенного поведения.
Связанный класс — QTextEdit, который позволяет редактировать текст на нескольких строках, форматированный текст.
Вы можете изменить текст с помощью setText() или insert(). Текст извлекается с помощью text(); отображаемый текст (который может отличаться, см. EchoMode) извлекается с помощью displayText(). Текст можно выделить с помощью setSelection() или selectAll(), и выделение можно вырезать, скопировать и вставить. Текст можно выровнять с помощью setAlignment().
При изменении текста генерируется сигнал textChanged; при изменении текста, кроме как с помощью вызова setText(), генерируется сигнал textEdited; при перемещении курсора генерируется сигнал cursorPositionChanged; и при нажатии клавиши Возврат или Ввод генерируется сигнал returnPressed.
Когда редактирование завершается, либо потому, что поле ввода строки потеряло фокус, либо была нажата клавиша Ввод/Возврат, генерируется сигнал editingFinished. Обратите внимание, что если фокус потерян без каких-либо изменений, сигнал editingFinished не будет сгенерирован.
Обратите внимание, что если для поля ввода строки установлен валидатор, сигналы returnPressed/editingFinished будут сгенерированы только в том случае, если валидатор вернет QValidator::Acceptable.
По умолчанию QLineEdits имеют рамку, как указано в руководствах по стилям платформ; вы можете отключить ее, вызвав 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, Справочник по проектированию графического интерфейса пользователя: Поля, Ввод, и Пример полей редактирования строки.
Документация по типам элементов
[since 5.2] enum QLineEdit::ActionPosition
Этот перечисление тип описывает, как поле редактирования должно отображать виджеты действий, которые нужно добавить.
| Константа | Значение | Описание |
|---|---|---|
QLineEdit::LeadingPosition |
0 |
Виджет отображается слева от текста при использовании направления макета Qt::LeftToRight или справа при использовании Qt::RightToLeft, соответственно. |
QLineEdit::TrailingPosition |
1 |
Виджет отображается справа от текста при использовании направления макета Qt::LeftToRight или слева при использовании Qt::RightToLeft, соответственно. |
Это перечисление было введено или изменено в Qt 5.2.
См. также 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.
[since 5.2] clearButtonEnabled : bool
Это свойство указывает, отображается ли кнопка очистки в поле ввода, когда оно не пустое.
Если включено, поле ввода отображает кнопку очистки, когда содержит текст, в противном случае кнопка не отображается (по умолчанию).
Это свойство было добавлено в Qt 5.2.
Функции доступа:
| bool | isClearButtonEnabled() const |
| void | setClearButtonEnabled(bool enable) |
См. также addAction() и removeAction().
cursorMoveStyle : Qt::CursorMoveStyle
Это свойство определяет стиль перемещения курсора в этом поле ввода.
Когда это свойство установлено в Qt::VisualMoveStyle, поле ввода будет использовать визуальный стиль перемещения. Нажатие клавиши влево всегда будет перемещать курсор влево, независимо от направления текста. Такое же поведение применимо к клавише вправо.
Когда свойство равно Qt::LogicalMoveStyle (по умолчанию), в блоке текста слева направо увеличение позиции курсора происходит при нажатии клавиши влево, уменьшение — при нажатии клавиши вправо. Если блок текста справа налево, поведение обратное.
Функции доступа:
| 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, возвращает строку с символами маски пароля (зависящих от платформы) размером text().length(), например, "******"; если 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 : const bool
Это свойство определяет, выбран ли какой-либо текст.
hasSelectedText() возвращает true если пользователь выбрал часть или весь текст; в противном случае возвращает false.
По умолчанию это свойство false.
Функции доступа:
| bool | hasSelectedText() const |
См. также selectedText().
inputMask : QString
Это свойство содержит маску ввода для валидации.
Если маска не установлена, inputMask() возвращает пустую строку.
Устанавливает маску валидации для 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-адреса) используйте маски вместе с валидаторами.
Функции доступа:
| 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
Это свойство указывает, было ли содержимое строки редактирования изменено пользователем.
Флаг modified никогда не считывается 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 : 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 &) |
Сигнал уведомления:
| void | textChanged(const QString &text) |
[read-only] undoAvailable : const bool
Это свойство определяет, доступен ли возврат к предыдущему состоянию.
Отмена становится доступной после того, как пользователь изменил текст в поле редактирования.
По умолчанию это свойство false.
Функции доступа:
| bool | isUndoAvailable() const |
Документация по членам-функциям
QLineEdit::QLineEdit(const QString &contents, QWidget *parent = nullptr)
Конструирует поле редактирования, содержащее текст contents.
Позиция курсора устанавливается в конец строки, а максимальная длина текста — в 32767 символов.
Аргумент parent передаётся конструктору QWidget.
См. также text() и setMaxLength().
QLineEdit::QLineEdit(QWidget *parent = nullptr)
Конструирует поле редактирования без текста.
Максимальная длина текста устанавливается в 32767 символов.
Аргумент parent передаётся конструктору QWidget.
См. также setText() и setMaxLength().
[slot] void QLineEdit::clear()
Очищает содержимое поля редактирования.
См. также setText() и insert().
[slot] void QLineEdit::copy() const
Копирует выделенный текст в буфер обмена, если он есть, и если echoMode() равно Normal.
[signal] void QLineEdit::cursorPositionChanged(int oldPos, int newPos)
Этот сигнал подаётся всякий раз, когда перемещается курсор. Предыдущая позиция задаётся oldPos, а новая — newPos.
См. также setCursorPosition() и cursorPosition().
[slot] void QLineEdit::cut()
Копирует выделенный текст в буфер обмена и удаляет его, если он есть, и если echoMode() равно Normal.
Если текущий валидатор запрещает удаление выделенного текста, cut() скопирует текст без удаления.
См. также copy(), paste() и setValidator().
[signal] void QLineEdit::editingFinished()
Этот сигнал подаётся при нажатии клавиш Ввод или Enter или если поле редактирования теряет фокус, а его содержимое изменилось с момента последнего излучения этого сигнала.
Обратите внимание, что если установлены валидатор validator() или маска ввода inputMask() для поля редактирования, сигнал editingFinished() будет подан только в том случае, если ввод соответствует inputMask() и валидатор validator() возвращает QValidator::Acceptable.
[signal, since 5.12] void QLineEdit::inputRejected()
Этот сигнал подаётся, когда пользователь нажимает клавишу, которая не считается допустимым вводом. Например, если нажатие клавиши приводит к тому, что валидатор в методе validate() возвращает Invalid. Другой случай — попытка ввода большего количества символов, чем максимальная длина поля редактирования.
Примечание: Этот сигнал по-прежнему будет подан в случае, если часть текста принята, но не вся. Например, если установлена максимальная длина, и текст из буфера обмена длиннее максимальной длины при вставке.
Эта функция была добавлена в Qt 5.12.
[slot] void QLineEdit::paste()
Вставляет текст из буфера обмена в позицию курсора, удаляя любой выделенный текст, если поле редактирования не является только для чтения.
Если конечный результат некорректен для текущего валидатора validator(), ничего не происходит.
[slot] void QLineEdit::redo()
Повторяет последнюю операцию, если повторение доступно redoAvailable.
[signal] void QLineEdit::returnPressed()
Этот сигнал подаётся при нажатии клавиш Ввод или Enter. Обратите внимание, что если установлены валидатор validator() или маска ввода inputMask() для поля редактирования, сигнал returnPressed() будет подан только в том случае, если ввод соответствует inputMask() и валидатор validator() возвращает QValidator::Acceptable.
[slot] void QLineEdit::selectAll()
Выделяет весь текст (т.е. выделяет его) и перемещает курсор в конец. Это полезно, когда был вставлен значение по умолчанию, потому что если пользователь набирает, прежде чем щелкнуть по виджету, выделенный текст будет удалён.
См. также setSelection() и deselect().
[signal] void QLineEdit::selectionChanged()
Этот сигнал подаётся всякий раз, когда изменяется выделение.
См. также hasSelectedText() и selectedText().
[signal] void QLineEdit::textChanged(const QString &text)
Этот сигнал подаётся всякий раз, когда изменяется текст. Аргумент text — новый текст.
В отличие от textEdited(), этот сигнал также подаётся, когда текст изменяется программно, например, при вызове setText().
Примечание: Сигнал-нотификатор для свойства text.
[signal] void QLineEdit::textEdited(const QString &text)
Этот сигнал подаётся всякий раз, когда текст редактируется. Аргумент text — новый текст.
В отличие от textChanged(), этот сигнал не подаётся, когда текст изменяется программно, например, при вызове setText().
[slot] void QLineEdit::undo()
Отменяет последнюю операцию, если отмена доступна. Снимает выделение, если оно есть, и обновляет начальную позицию выделения до текущей позиции курсора.
[virtual] QLineEdit::~QLineEdit()
Уничтожает поле редактирования.
[since 5.2] void QLineEdit::addAction(QAction *action, QLineEdit::ActionPosition position)
Добавляет action в список действий в позиции position.
Эта функция была добавлена в Qt 5.2.
[since 5.2] QAction *QLineEdit::addAction(const QIcon &icon, QLineEdit::ActionPosition position)
Это перегруженная функция.
Создаёт новое действие с заданным icon в позиции position.
Эта функция была добавлена в Qt 5.2.
void QLineEdit::backspace()
Если текст не выделен, удаляет символ слева от курсора и перемещает курсор на одну позицию влево. Если текст выделен, курсор перемещается в начало выделенного текста, и выделенный текст удаляется.
См. также del().
[override virtual protected] void QLineEdit::changeEvent(QEvent *ev)
Переопределяет: QWidget::changeEvent(QEvent *event).
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().
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.
[protected] QRect QLineEdit::cursorRect() const
Возвращает прямоугольник, содержащий курсор поля ввода.
void QLineEdit::cursorWordBackward(bool mark)
Перемещает курсор на одно слово назад. Если mark равно true, слово также выделяется.
См. также cursorWordForward().
void QLineEdit::cursorWordForward(bool mark)
Перемещает курсор на одно слово вперёд. Если mark равно true, слово также выделяется.
См. также cursorWordBackward().
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).
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
Инициализирует option значениями из этого QLineEdit. Этот метод полезен для подклассов, когда им нужен 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.
void QLineEdit::insert(const QString &newText)
Удаляет выделенный текст, вставляет newText и проверяет результат. Если он корректный, устанавливает его в качестве нового содержимого поля ввода.
См. также setText() и clear().
[override virtual protected] void QLineEdit::keyPressEvent(QKeyEvent *event)
Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).
Преобразует нажатие клавиши event в действие поля ввода.
Если нажата клавиша Ввод или Enter и текущий текст корректен (или может быть сделан корректным валидатором), генерируется сигнал returnPressed().
Стандартные сочетания клавиш перечислены в подробном описании класса.
[override virtual protected] void QLineEdit::keyReleaseEvent(QKeyEvent *)
Переопределяет: 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).
[since 5.10] int QLineEdit::selectionEnd() const
Возвращает индекс символа, непосредственно следующего за выделенным фрагментом в поле редактирования, или -1, если текст не выделен.
Эта функция была добавлена в Qt 5.10.
См. также selectedText(), selectionStart(), и selectionLength().
[since 5.10] int QLineEdit::selectionLength() const
Возвращает длину выделенного фрагмента.
Эта функция была добавлена в Qt 5.10.
См. также 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 содержала только допустимые записи.
Если c == 0, setCompleter() удаляет текущий QCompleter, эффективно отключая автозаполнение.
См. также completer() и QCompleter.
void QLineEdit::setSelection(int start, int length)
Выделяет текст с позиции start и длиной length символов. Разрешаются отрицательные значения length.
См. также deselect(), selectAll(), и selectedText().
void QLineEdit::setTextMargins(int left, int top, int right, int bottom)
Устанавливает отступы вокруг текста внутри рамки размером left, top, right и bottom.
См. также textMargins().
См. также textMargins().
void QLineEdit::setTextMargins(const QMargins &margins)
Устанавливает отступы margins вокруг текста внутри рамки.
См. также textMargins().
void QLineEdit::setValidator(const QValidator *v)
Устанавливает валидатор для значений поля редактирования в v.
Сигналы returnPressed() и editingFinished() поля редактирования будут выпущены только в том случае, если v валидирует содержимое поля редактирования как Acceptable. Пользователь может изменять содержимое на любое значение Intermediate во время редактирования, но будет предотвращено изменение текста на значение, которое v валидирует как Invalid.
Это позволяет ограничить текст, который в конечном итоге будет введён при завершении редактирования, сохраняя при этом достаточную свободу действий для пользователей по изменению текста от одного допустимого состояния к другому.
Если v == 0, setValidator() удаляет текущий валидатор ввода. Начальное значение - отсутствие валидатора (то есть любой ввод принимается до maxLength()).
См. также validator(), hasAcceptableInput(), QIntValidator, QDoubleValidator и QRegularExpressionValidator.
[override virtual] QSize QLineEdit::sizeHint() const
Переопределяет функцию доступа к свойству: QWidget::sizeHint.
Возвращает рекомендуемый размер виджета.
Возвращаемая ширина в пикселях обычно достаточна примерно для 15-20 символов.
QMargins QLineEdit::textMargins() const
Возвращает отступы текста виджета.
См. также setTextMargins().
[override virtual] void QLineEdit::timerEvent(QTimerEvent *e)
Переопределяет: QObject::timerEvent(QTimerEvent *event).
const QValidator *QLineEdit::validator() const
Возвращает указатель на текущий валидатор ввода или nullptr если валидатор не установлен.
См. также setValidator().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qlineedit.html