Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |
Виджет QLineEdit представляет собой редактор однострочного текста. Далее...
#include <QLineEdit>
Наследует QWidget.
|
|
Виджет QLineEdit представляет собой редактор однострочного текста.
Редактор строки позволяет пользователю вводить и редактировать одну строку простого текста с набором полезных функций редактирования, включая отмену, повтор, вырезание, вставку, а также перетаскивание с помощью механизма drag-and-drop.
Изменяя свойства echoMode() редактора, можно использовать его в качестве поля "только-для-записи" и для ввода паролей.
Длина текста может быть ограничена с помощью maxLength(). Для текста можно задать условия, используя validator() или inputMask(), либо оба их.
QTextEdit - это подобный класс, но он позволяет редактировать многострочный форматированный текст.
Вы можете изменять текст с помощью setText() или insert(). Текст может быть получен с помощью text(); отображаемый текст (может отличаться от содержащегося текста, см. EchoMode) может быть получен с помощью displayText(). Текст может быть выделен с помощью setSelection() или selectAll(), а выделенный текст может быть вырезан с помощью cut(), скопирован с помощью copy() и вставлен с помощью paste(). Текст может быть выровнен с помощью setAlignment().
При изменении текста испускается сигнал textChanged(); при изменении текста с помощью setText(), испускается сигнал textEdited(); при перемещении курсора испускается сигнал cursorPositionChanged(); а при нажатии клавиш Return или Enter испускается сигнал returnPressed().
При окончании редактирования (редактор теряет фокус или нажата клавиша Return/Enter) испускается сигнал editingFinished().
Обратите внимание на то, что если установлено условие для текста (validator()), то сигналы returnPressed()/editingFinished() испускаются только в случае, если условие для текста возвращает QValidator::Acceptable.
По умолчанию, QLineEdits имеет рамку, определенную Windows или или стилем Motif; это может быть изменено с помощью setFrame(false).
Ниже приведены ключевые клавиши и сочетания клавиш и действия, вызываемые ими, определенные по умолчанию. Также редактор строки предоставляет контекстное меню (обычно вызываемое по нажатии правой кнопки мыши), в котором представлены некоторые из этих действий.
Клавиши | Действие |
---|---|
Стрелка Влево | Перемещает курсор на один символ влево. |
Shift+Стрелка Влево | Перемещает курсор на один символ влево с выделением текста. |
Стрелка Вправо | Перемещает курсор на один символ вправо. |
Shift+Стрелка Вправо | Перемещает курсор на один символ вправо с выделением текста. |
Home | Перемещает курсор в начало строки. |
End | Перемещает курсор в конец строки. |
Backspace | Удаляет один символ, стоящий слева от курсора. |
Ctrl+Backspace | Удаляет одно слово, стоящее слева от курсора. |
Delete | Удаляет один символ, стоящий справа от курсора. |
Ctrl+Delete | Удаляет одно слово, стоящее справа от курсора. |
Ctrl+A | Перемещает курсор в начало строки. |
Ctrl+B | Перемещает курсор в конец строки. |
Ctrl+C | Копирует выделенный текст в буфер обмена. |
Ctrl+Insert | Копирует выделенный текст в буфер обмена. |
Ctrl+D | Удаляет один символ, стоящие справа от курсора. |
Ctrl+E | Перемещает курсор в конец строки. |
Ctrl+F | Перемещает курсор на один символ вправо. |
Ctrl+H | Удаляет один символ, стоящий слева от курсора. |
Ctrl+K | Удаляет все символы от курсора до конца строки. |
Ctrl+V | Вставляет текст в редактор из буфера обмена. |
Shift+Insert | Вставляет текст в редактор из буфера обмена. |
Ctrl+X | Удаляет выделенный текст и копирует его в буфер обмена. |
Shift+Delete | Удаляет выделенный текст и копирует его в буфер обмена. |
Ctrl+Z | Отменяет последнюю операцию. |
Ctrl+Y | Повторяет последнюю отмененную операцию. |
Любые другие сочетания клавиш, имеющие символьное представление, приведут к вставке этого предаставления в строку.
См. также QTextEdit, QLabel, QComboBox и GUI Design Handbook: Field, Entry.
Данное перечисление описывает, как редактор строки отображает свое содержимое.
Константа | Значение | Описание |
---|---|---|
QLineEdit::Normal | 0 | Отображаются те-же самые символы, что и введены. Это режим по умолчанию. |
QLineEdit::NoEcho | 1 | Не отображается вообще ничего. Этот режим может использоваться для ввода паролей там, где даже длинна пароля должна оставаться в секрете. |
QLineEdit::Password | 2 | Вместо фактически введенных символов отображаются звездочки. |
См. также setEchoMode() и echoMode().
Данное свойство сообщает, соответствует ли введенный текст маске ввода или условию, наложенному на текст.
Функции доступа:
См. также setInputMask() и setValidator().
Данное свойство содержит выравнивание текста в редакторе.
Допускается только выравнивание по горизонтали, Qt::AlignJustify считается Qt::AlignLeft.
Функции доступа:
См. также Qt::Alignment.
Данное свойство содержит текущее положение курсора в редакторе.
Установка положения курсора приводит к перерисовке виджета, если необходимо.
Функции доступа:
Данное свойство содержит отображаемый текст.
Если echoMode равно Normal, то возвращается тоже самое, что возвращается text(); если EchoMode равно Password, то возвращается строка, содержащаю звездочки, с длиной text().length() символов, например, "******"; если EchoMode равно NoEcho, то возвращается пустая строка, "".
Функции доступа:
См. также setEchoMode(), text() и EchoMode.
Данное свойство указывает, начинает ли редактор процесс перетаскивания, если пользователь начинает перемещать мышь с нажатой кнопкой над выделенным текстом.
По умолчанию перетаскивание запрещено.
Функции доступа:
Данное свойство содержит режим отображения содержимого редактора.
Изначальное значение - это Normal, но QLineEdit также поддерживает режимы NoEcho и Password.
Это свойство влияет на отображение содержимого текста, возможность копирования и перетаскивания текста.
Функции доступа:
См. также EchoMode и displayText().
Данное свойство указывает, отображается ли рамка редактора.
Если рамка доступна (по умолчанию), то редактор рисуется внутри рамки, в противном случае редактор отображается без рамки.
Функции доступа:
Данное свойство сообщает, выделен ли какой либо текст в редакторе.
hasSelectedText() возвращает true, если пользователем выделена часть текста или весь текст; в противном случае возвращает false.
Функции доступа:
См. также selectedText().
Данное свойство содержит маску ввода.
Если маска не установлена, то inputMask() возвращает пустую строку.
Устанавливает маску ввода QLineEdit. Условие для текста может использоваться вместо маски или вместе с ней; см. setValidator().
Сброс маски в возвращение обычной работы QLineEdit производится с помощью передачи пустой строки ("") или с помощью вызова setInputMask() без аргументов.
Формат маски предусматривает следующие символы:
Символ | Значение |
---|---|
A | Требуется алфавитный символ ASCII. A-Z, a-z. |
a | Разрешен, но не обязателен алфавитный симовл ASCII. |
N | Требуется алфавитный символ или цифра ASCII. A-Z, a-z, 0-9. |
n | Разрешен, но не обязателен алфавитный символ или цифра ASCII. |
X | Требуется любой символ. |
x | Разрешен, но не обязателен любой символ. |
9 | Требуется цифра ASCII. 0-9. |
0 | Разрешена, но не обязательна цифра ASCII. |
D | Требуется цифра ASCII не равная нулю. 1-9. |
d | Разрешена, но не обязательна цифра ASCII не равная нулю (1-9). |
# | Разрешена, но не обязательна цифра или знак плюс/минус ASCII. |
H | Требуется шестнадцатиричный символ. A-F, a-f, 0-9. |
h | Разрешен, но не обязателен шестнадцатиричный символ. |
B | Требуется двоичный символ. 0-1. |
b | Разрешен, но не обязателен двоичный символ. |
> | Все следующие алфавитный символы переводятся в верхний регистр. |
< | Все следующие алфавитный символы переводятся в нижний регистр. |
! | Изменение регистра отключается. |
\ | Используйте \ для того, чтобы отменить действие вышеприведенных знаков, как специальных символов, и использовать их в качестве разделителей. |
Маска состоит из строки символов маски и разделителей, иногда сопровождается точкой с запятой и символом, используемым для обозначения пробелов: символы пробелов всегда удаляются из строки после окончания редактирования. По умолчанию, символы пробела, соответствуют обычному пробелу.
Примеры:
Маска | Описание |
---|---|
000.000.000.000;_ | IP-адрес; пробелы обозначаются символом _. |
HH:HH:HH:HH:HH:HH;_ | MAC-адрес |
0000-00-00 | Дата ISO; пробелы обозначаются символом пробел |
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# | Лицензионный номер; пробелы обозначаются символом - и все (алфавитные) символы приводятся к верхнему регистру. |
Для контроля диапазона символов (например, при вводе IP-адреса) используйте маску с условием для текста.
Функции доступа:
См. также maxLength.
Данное свойство содержит максимальную разрешенную длину текста.
Если текст очень длинный, то он обрезается по установленному пределу.
Если происходит обрезание текста, то текст становится не выделенным (если раньше что либо было выделено), курсор помещается в позицию 0 и отображается первая часть текста.
Если для редактора установлена маска ввода, то эта маска определяет максимальную длину текста.
Функции доступа:
См. также inputMask.
Данное свойство указывает, было ли изменено содержимое редактора пользователем.
QLineEdit никогда не читает флаг изменения; по умолчанию флаг имеет значение false и изменяется на true всякий раз, когда пользователь изменяет содержимое редактора.
Это удобно в случаях, когда приложение предоставляет значение по умолчанию, но не знает, что такое значение есть (возможно, значение по умолчанию зависит от других полей формы). Сначала редактор не отображает значение по умолчанию, но при значет о нем, и только если modified() возвращает false (пользователь не ввел текст), вставляет значение по умолчанию.
Вызов setText() устанавливает флаг модификации в false.
Функции доступа:
Данное свойство указывает, позволяет ли редактор вводить текст или только читать.
В режиме только-для-чтения пользователь все еще может копировать в буфер обмена и перетаскивать текст (если echoMode() равно Normal), но не может редактировать его.
В режиме только-для-чтения, QLineEdit не отображает курсор.
Функции доступа:
См. также setEnabled().
Данное свойство сообщает, доступен ли повтор последнего отмененного действия.
Функции доступа:
Данное свойство содержит выделенный текст.
Если ни какой текст не выделен, то значением свойства является пустая строка.
Функции доступа:
См. также hasSelectedText().
Данное свойство содержит редактируемый текст.
Установка данного свойства отменяет выделение текста, очищает историю отмены/повтора, устанавливает курсор в конец строки и устанавливает свойство modified в false. При вставке текста с помощью setText() не проверяется соответствие устанавливаемого текста заданному условию не текст.
Текст обрезается в соответствии с maxLength().
Функции доступа:
Данное свойство сообщает, доступна ли отмена последнего действия.
Функции доступа:
Создает не заполненный текстом редактор.
Максимальная длина текста установлена равной 32767 символам.
Аргумент parent передается в конструктор QWidget.
См. также setText() и setMaxLength().
Создает редактор, содержащий текст contents.
Курсор устанавливается в конец строки, а максимальная длина текста устанавливается равной 32767 символам.
Аргумент parent передается в конструктор QWidget.
См. также text() и setMaxLength().
Разрушает редактор.
Если никакой текст не выделен, но символ, стоящий слева от курсора, удаляется, а курсор перемещается на одну позицию левее. Если есть выделенный текст, то курсор перемещается в начало выделенного текста, а выделенный текст удаляется.
См. также del().
Удаляет текст, содрежащийся в редакторе.
См. также setText() и insert().
Отображает стандартное контекстное меню, созданное с помощью 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 используется для определения позиции, в которой находится указатель мыши во время создания сообщения контестного меню.
Заново реализовано по отношению к QWidget.
См. также setContextMenuPolicy().
Копирует выделенный текст, если таковой есть и если echoMode() равно Normal, в буфер обмена.
Данная функция создает стандартное контекстное меню отображаемое при щелчке на редакторе правой кнопкой мыши. По умолчанию вызывается обработчиком сообщений contextMenuEvent(). Всплывающее меню передается вызывающему по значению.
Перемещает курсор назад на steps символов. Если mark равно true, то каждый символ, через который перемещается курсор, выделяется; если mark равно false то выделение с текста снимается.
См. также cursorForward().
Перемещает курсор вперед на steps символов. Если mark равно true, то каждый символ, через который перемещается курсор, выделяется; если mark равно false то выделение с текста снимается.
См. также cursorBackward().
Возвращает позицию, которую мог бы занимать курсор, находясь в точке pos.
Данный сигнал испускается всякий раз при перемещении курсора. Предыдущая позиция курсора помещается в old, а новая позиция - в new.
См. также setCursorPosition() и cursorPosition().
Перемещает курсор на одно слово назад. Если mark равно true, то слово выделяется.
См. также cursorWordForward().
Перемещает курсор на одно слово вперед. Если mark равно true, то слово выделяется.
См. также cursorWordBackward().
Копирует выделенный текст, если таковой имеется и если echoMode() равно Normal, в буфер обмена и удаляет его.
Если текущее условие на текст отвергает удаление выделенного текста, то cut() будет скопирован, но не удален.
См. также copy(), paste() и setValidator().
Если нет выделенного текста, то удаляется символ, стоящий справа от курсора. Если есть выделенный текст, то курсор перемещается в начало выделенного текста, а выделенный текст удаляется.
См. также backspace().
Снимает выделение с выделенным текстом.
См. также setSelection() и selectAll().
Данный сигнал испускается при нажатии клавиши Return или Enter или когда редактор теряет фокус. Обратите внимание, что если для редактора установлены validator() или inputMask() и нажата клавиша enter/return, то сигнал editingFinished() будет испущен только в том случае, если inputMask() и validator() для введенног текста возвратят QValidator::Acceptable.
Перемещает курсор в конец редактируемой строки (если он уже не там). Если mark равно true, то текст от текущего положения до конца строки добавляется к выделенному; в противном случае, выделение с выделенного текста снимается (если курсор перемещается).
См. также home().
Перемещает курсор в начало редактируемой строки (если он уже не там). Если mark равно true, то текст от начала строки до текущего положения добавляется к выделенному; в противном случае, выделение с выделенного текста снимается (если курсор перемещается).
См. также end().
Удаляет выделенный текст, вставляет новый текст newText и проверяет соответствие результата на соответствие установленному условию. Если новый текст соответствует условию, то он становится новым содержимым редактора.
См. также setText() и clear().
Преобразует полученное сообщение клавиатуры event в действие редактора.
Если нажата клавиша Return или Enter и текущий текст соответствует установленному условию (или может быть сделан соответствующим объектом условия), то испускается сигнал returnPressed().
Список ействий клавиш, заданные по умолчанию, приведен в подробном описании класса.
Повторно реализовано по отношению к QWidget.
Возвращает минимальный размер редактора.
Ширина в возвращаемом значении достаточна для размещения по крайней мере одного символа.
Повторно реализовано по отношению к QWidget.
Вставляет текст из буфера обмена в позицию курсора, удаляет выделенный текст. Поддреживается редактором, если он находится не в режиме только-для-чтения.
Если полученный результат не соответствует установленному условию (validator), ничего не происходит.
Повторяет последнюю отмененную операцию если это возможно (свойство redoАvailable).
Данный сигнал испускается при нажатии клавиши Return или Enter. Обратите внимание, что если для редактора установлены validator() или inputMask(), то сигнал returnPressed() испускается только в том случае, если inputMask() и validator() для введенного текста возвращают QValidator::Acceptable.
Выделяет весь текст (т.е. подсвечивает его) и перемещает курсор в конец строки. Это полезно при вставке значения по умолчанию, так как, если пользователь станет вводить текст в виджет, выделенный текст будет удален.
См. также setSelection() и deselect().
Данный сигнал испускается всякий раз, когда изменяется выделение текста в редакторе.
См. также hasSelectedText() и selectedText().
selectionStart() возвращает индекс первого выделенного символа или, если никакой текст не выделен, -1.
См. также selectedText().
Выделяет фрагмент текста начинающийся в позиции start и имеющий длину length символов. Допускается отрицательное значение длины.
См. также deselect(), selectAll() и selectedText().
Устанавливает для редактора условие на вводимый текст v. Это позволяет устанавливать любые ограничения на вводимый текст.
Если v == 0, то setValidator() удаляет установленное условие на текст. Изначально для редактора не установлено никакое условие на текст (т.е. позволяется вводить любой текст длиной не более maxLength() символов).
См. также validator(), QIntValidator, QDoubleValidator и QRegExpValidator.
Возвращает рекомендуемый виджету размер.
Ширина, возвращаемая в пикселях, обычно достаточна для размещения 15-20 символам.
Повторно реализовано по отношению к QWidget.
Данный сигнал испускается всякий раз при изменении текста. Аргумент text содержит новый текст.
В отличие от textEdited(), данный сигнал испускается даже тогда, когда текст в редакторе устанавливается программно, с помощью setText().
Данный сигнал испускается всякий раз при редактировании текста. Аргумент text содрежит новый текст.
В отличие от textChanged(), данный сигнал не испускается при программной установке текста с помощью setText().
Отменяет последнюю операцию, если отмена возможна (свойство undoAvailable. Снимает выделение текста и переносит начало выделения текста к текущему положению курсора.
Возвращает указатель на текущее условие на вводимый текст или, если таковое условие на установлено, 0.
См. также setValidator().
Copyright © 2005 Trolltech | Trademarks | Qt 4.1.0 |