Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QLineEdit
[модуль QtGui]

Виджет 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Повторяет последнюю отмененную операцию.

Любые другие сочетания клавиш, имеющие символьное представление, приведут к вставке этого предаставления в строку.

Screenshot in Macintosh style Screenshot in Windows style

См. также QTextEdit, QLabel, QComboBox и GUI Design Handbook: Field, Entry.


Описание Типов Членов

enum QLineEdit::EchoMode

Данное перечисление описывает, как редактор строки отображает свое содержимое.

КонстантаЗначениеОписание
QLineEdit::Normal0Отображаются те-же самые символы, что и введены. Это режим по умолчанию.
QLineEdit::NoEcho1Не отображается вообще ничего. Этот режим может использоваться для ввода паролей там, где даже длинна пароля должна оставаться в секрете.
QLineEdit::Password2Вместо фактически введенных символов отображаются звездочки.

См. также setEchoMode() и echoMode().


Описание Свойств

acceptableInput : const bool

Данное свойство сообщает, соответствует ли введенный текст маске ввода или условию, наложенному на текст.

Функции доступа:

См. также setInputMask() и setValidator().

alignment : Qt::Alignment

Данное свойство содержит выравнивание текста в редакторе.

Допускается только выравнивание по горизонтали, Qt::AlignJustify считается Qt::AlignLeft.

Функции доступа:

См. также Qt::Alignment.

cursorPosition : int

Данное свойство содержит текущее положение курсора в редакторе.

Установка положения курсора приводит к перерисовке виджета, если необходимо.

Функции доступа:

displayText : const QString

Данное свойство содержит отображаемый текст.

Если echoMode равно Normal, то возвращается тоже самое, что возвращается text(); если EchoMode равно Password, то возвращается строка, содержащаю звездочки, с длиной text().length() символов, например, "******"; если EchoMode равно NoEcho, то возвращается пустая строка, "".

Функции доступа:

См. также setEchoMode(), text() и EchoMode.

dragEnabled : bool

Данное свойство указывает, начинает ли редактор процесс перетаскивания, если пользователь начинает перемещать мышь с нажатой кнопкой над выделенным текстом.

По умолчанию перетаскивание запрещено.

Функции доступа:

echoMode : EchoMode

Данное свойство содержит режим отображения содержимого редактора.

Изначальное значение - это Normal, но QLineEdit также поддерживает режимы NoEcho и Password.

Это свойство влияет на отображение содержимого текста, возможность копирования и перетаскивания текста.

Функции доступа:

См. также EchoMode и displayText().

frame : bool

Данное свойство указывает, отображается ли рамка редактора.

Если рамка доступна (по умолчанию), то редактор рисуется внутри рамки, в противном случае редактор отображается без рамки.

Функции доступа:

hasSelectedText : const bool

Данное свойство сообщает, выделен ли какой либо текст в редакторе.

hasSelectedText() возвращает true, если пользователем выделена часть текста или весь текст; в противном случае возвращает false.

Функции доступа:

См. также selectedText().

inputMask : QString

Данное свойство содержит маску ввода.

Если маска не установлена, то 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.

maxLength : int

Данное свойство содержит максимальную разрешенную длину текста.

Если текст очень длинный, то он обрезается по установленному пределу.

Если происходит обрезание текста, то текст становится не выделенным (если раньше что либо было выделено), курсор помещается в позицию 0 и отображается первая часть текста.

Если для редактора установлена маска ввода, то эта маска определяет максимальную длину текста.

Функции доступа:

См. также inputMask.

modified : bool

Данное свойство указывает, было ли изменено содержимое редактора пользователем.

QLineEdit никогда не читает флаг изменения; по умолчанию флаг имеет значение false и изменяется на true всякий раз, когда пользователь изменяет содержимое редактора.

Это удобно в случаях, когда приложение предоставляет значение по умолчанию, но не знает, что такое значение есть (возможно, значение по умолчанию зависит от других полей формы). Сначала редактор не отображает значение по умолчанию, но при значет о нем, и только если modified() возвращает false (пользователь не ввел текст), вставляет значение по умолчанию.

Вызов setText() устанавливает флаг модификации в false.

Функции доступа:

readOnly : bool

Данное свойство указывает, позволяет ли редактор вводить текст или только читать.

В режиме только-для-чтения пользователь все еще может копировать в буфер обмена и перетаскивать текст (если echoMode() равно Normal), но не может редактировать его.

В режиме только-для-чтения, QLineEdit не отображает курсор.

Функции доступа:

См. также setEnabled().

redoAvailable : const bool

Данное свойство сообщает, доступен ли повтор последнего отмененного действия.

Функции доступа:

selectedText : const QString

Данное свойство содержит выделенный текст.

Если ни какой текст не выделен, то значением свойства является пустая строка.

Функции доступа:

См. также hasSelectedText().

text : QString

Данное свойство содержит редактируемый текст.

Установка данного свойства отменяет выделение текста, очищает историю отмены/повтора, устанавливает курсор в конец строки и устанавливает свойство modified в false. При вставке текста с помощью setText() не проверяется соответствие устанавливаемого текста заданному условию не текст.

Текст обрезается в соответствии с maxLength().

Функции доступа:

См. также insert() и clear().

undoAvailable : const bool

Данное свойство сообщает, доступна ли отмена последнего действия.

Функции доступа:


Описание Функций-Членов

QLineEdit::QLineEdit ( QWidget * parent = 0 )

Создает не заполненный текстом редактор.

Максимальная длина текста установлена равной 32767 символам.

Аргумент parent передается в конструктор QWidget.

См. также setText() и setMaxLength().

QLineEdit::QLineEdit ( const QString & contents, QWidget * parent = 0 )

Создает редактор, содержащий текст contents.

Курсор устанавливается в конец строки, а максимальная длина текста устанавливается равной 32767 символам.

Аргумент parent передается в конструктор QWidget.

См. также text() и setMaxLength().

QLineEdit::~QLineEdit ()

Разрушает редактор.

void QLineEdit::backspace ()

Если никакой текст не выделен, но символ, стоящий слева от курсора, удаляется, а курсор перемещается на одну позицию левее. Если есть выделенный текст, то курсор перемещается в начало выделенного текста, а выделенный текст удаляется.

См. также del().

void QLineEdit::clear ()   [slot]

Удаляет текст, содрежащийся в редакторе.

См. также setText() и insert().

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

Отображает стандартное контекстное меню, созданное с помощью 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().

void QLineEdit::copy () const   [slot]

Копирует выделенный текст, если таковой есть и если echoMode() равно Normal, в буфер обмена.

См. также cut() и paste().

QMenu * QLineEdit::createStandardContextMenu ()

Данная функция создает стандартное контекстное меню отображаемое при щелчке на редакторе правой кнопкой мыши. По умолчанию вызывается обработчиком сообщений contextMenuEvent(). Всплывающее меню передается вызывающему по значению.

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

Перемещает курсор назад на steps символов. Если mark равно true, то каждый символ, через который перемещается курсор, выделяется; если mark равно false то выделение с текста снимается.

См. также cursorForward().

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

Перемещает курсор вперед на steps символов. Если mark равно true, то каждый символ, через который перемещается курсор, выделяется; если mark равно false то выделение с текста снимается.

См. также cursorBackward().

int QLineEdit::cursorPositionAt ( const QPoint & pos )

Возвращает позицию, которую мог бы занимать курсор, находясь в точке pos.

void QLineEdit::cursorPositionChanged ( int old, int new )   [signal]

Данный сигнал испускается всякий раз при перемещении курсора. Предыдущая позиция курсора помещается в old, а новая позиция - в new.

См. также setCursorPosition() и cursorPosition().

void QLineEdit::cursorWordBackward ( bool mark )

Перемещает курсор на одно слово назад. Если mark равно true, то слово выделяется.

См. также cursorWordForward().

void QLineEdit::cursorWordForward ( bool mark )

Перемещает курсор на одно слово вперед. Если mark равно true, то слово выделяется.

См. также cursorWordBackward().

void QLineEdit::cut ()   [slot]

Копирует выделенный текст, если таковой имеется и если echoMode() равно Normal, в буфер обмена и удаляет его.

Если текущее условие на текст отвергает удаление выделенного текста, то cut() будет скопирован, но не удален.

См. также copy(), paste() и setValidator().

void QLineEdit::del ()

Если нет выделенного текста, то удаляется символ, стоящий справа от курсора. Если есть выделенный текст, то курсор перемещается в начало выделенного текста, а выделенный текст удаляется.

См. также backspace().

void QLineEdit::deselect ()

Снимает выделение с выделенным текстом.

См. также setSelection() и selectAll().

void QLineEdit::editingFinished ()   [signal]

Данный сигнал испускается при нажатии клавиши Return или Enter или когда редактор теряет фокус. Обратите внимание, что если для редактора установлены validator() или inputMask() и нажата клавиша enter/return, то сигнал editingFinished() будет испущен только в том случае, если inputMask() и validator() для введенног текста возвратят QValidator::Acceptable.

void QLineEdit::end ( bool mark )

Перемещает курсор в конец редактируемой строки (если он уже не там). Если mark равно true, то текст от текущего положения до конца строки добавляется к выделенному; в противном случае, выделение с выделенного текста снимается (если курсор перемещается).

См. также home().

void QLineEdit::home ( bool mark )

Перемещает курсор в начало редактируемой строки (если он уже не там). Если mark равно true, то текст от начала строки до текущего положения добавляется к выделенному; в противном случае, выделение с выделенного текста снимается (если курсор перемещается).

См. также end().

void QLineEdit::insert ( const QString & newText )

Удаляет выделенный текст, вставляет новый текст newText и проверяет соответствие результата на соответствие установленному условию. Если новый текст соответствует условию, то он становится новым содержимым редактора.

См. также setText() и clear().

void QLineEdit::keyPressEvent ( QKeyEvent * event )   [virtual protected]

Преобразует полученное сообщение клавиатуры event в действие редактора.

Если нажата клавиша Return или Enter и текущий текст соответствует установленному условию (или может быть сделан соответствующим объектом условия), то испускается сигнал returnPressed().

Список ействий клавиш, заданные по умолчанию, приведен в подробном описании класса.

Повторно реализовано по отношению к QWidget.

QSize QLineEdit::minimumSizeHint () const   [virtual]

Возвращает минимальный размер редактора.

Ширина в возвращаемом значении достаточна для размещения по крайней мере одного символа.

Повторно реализовано по отношению к QWidget.

void QLineEdit::paste ()   [slot]

Вставляет текст из буфера обмена в позицию курсора, удаляет выделенный текст. Поддреживается редактором, если он находится не в режиме только-для-чтения.

Если полученный результат не соответствует установленному условию (validator), ничего не происходит.

См. также copy() и cut().

void QLineEdit::redo ()   [slot]

Повторяет последнюю отмененную операцию если это возможно (свойство redoАvailable).

void QLineEdit::returnPressed ()   [signal]

Данный сигнал испускается при нажатии клавиши Return или Enter. Обратите внимание, что если для редактора установлены validator() или inputMask(), то сигнал returnPressed() испускается только в том случае, если inputMask() и validator() для введенного текста возвращают QValidator::Acceptable.

void QLineEdit::selectAll ()   [slot]

Выделяет весь текст (т.е. подсвечивает его) и перемещает курсор в конец строки. Это полезно при вставке значения по умолчанию, так как, если пользователь станет вводить текст в виджет, выделенный текст будет удален.

См. также setSelection() и deselect().

void QLineEdit::selectionChanged ()   [signal]

Данный сигнал испускается всякий раз, когда изменяется выделение текста в редакторе.

См. также hasSelectedText() и selectedText().

int QLineEdit::selectionStart () const

selectionStart() возвращает индекс первого выделенного символа или, если никакой текст не выделен, -1.

См. также selectedText().

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

Выделяет фрагмент текста начинающийся в позиции start и имеющий длину length символов. Допускается отрицательное значение длины.

См. также deselect(), selectAll() и selectedText().

void QLineEdit::setValidator ( const QValidator * v )

Устанавливает для редактора условие на вводимый текст v. Это позволяет устанавливать любые ограничения на вводимый текст.

Если v == 0, то setValidator() удаляет установленное условие на текст. Изначально для редактора не установлено никакое условие на текст (т.е. позволяется вводить любой текст длиной не более maxLength() символов).

См. также validator(), QIntValidator, QDoubleValidator и QRegExpValidator.

QSize QLineEdit::sizeHint () const   [virtual]

Возвращает рекомендуемый виджету размер.

Ширина, возвращаемая в пикселях, обычно достаточна для размещения 15-20 символам.

Повторно реализовано по отношению к QWidget.

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

Данный сигнал испускается всякий раз при изменении текста. Аргумент text содержит новый текст.

В отличие от textEdited(), данный сигнал испускается даже тогда, когда текст в редакторе устанавливается программно, с помощью setText().

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

Данный сигнал испускается всякий раз при редактировании текста. Аргумент text содрежит новый текст.

В отличие от textChanged(), данный сигнал не испускается при программной установке текста с помощью setText().

void QLineEdit::undo ()   [slot]

Отменяет последнюю операцию, если отмена возможна (свойство undoAvailable. Снимает выделение текста и переносит начало выделения текста к текущему положению курсора.

const QValidator * QLineEdit::validator () const

Возвращает указатель на текущее условие на вводимый текст или, если таковое условие на установлено, 0.

См. также setValidator().


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz