Qlineedit как заблокировать
Перейти к содержимому

Qlineedit как заблокировать

  • автор:

Qlineedit как заблокировать

Подскажите пожалуйста ато мозг устал.
Как в виджите QLineEdit проверить что есть информация не нуливая в пределах одной области видемости, что бы потом можно было дать разришение на нажатие кнопок?
Спасибо за внимание!

Алексей1153
10.5.2011, 22:55
fortero, что значит — «нулевая информация» и что за «пределы видимости» ? И про какие кнопки речь?
10.5.2011, 23:01
Цитата(Алексей1153 @ 10.5.2011, 22:55)
fortero, что значит — «нулевая информация» и что за «пределы видимости» ? И про какие кнопки речь?

void FormsAddEditSp::fSkAdd() setMinimumSize(600, 380); 
setMaximumSize(600, 380);
grBox = new QGroupBox(tr("Здесь вы можите добавить запись в справочник корреспандентов:"), this);

nameL = new QLabel(tr("Наименование: "), this);
descriptionL = new QLabel(tr("Полное имя: "), this);
accountL = new QLabel(tr("Расчётный счёт: "), this);
mfoL = new QLabel(tr("МФО: "), this);
kodokpoL = new QLabel(tr("Код ОКПО: "), this);
addressL = new QLabel(tr("Адрес: "), this);
inmpL = new QLabel(tr("Регестрационный номер: "), this);
nsvdL = new QLabel(tr("Номер свидетельства: "), this);
phoneL = new QLabel(tr("Телефон: "), this);

nameE = new QLineEdit(this);
descriptionE = new QLineEdit(this);
accountE = new QLineEdit(this);
mfoE = new QLineEdit(this);
kodokpoE = new QLineEdit(this);
addressE = new QLineEdit(this);
inmpE = new QLineEdit(this);
nsvdE = new QLineEdit(this);
phoneE = new QLineEdit(this);
//Валидность
nameE->setMaxLength(30);
descriptionE->setMaxLength(255);
addressE->setMaxLength(50);
QRegExp evAccount(tr("[0-9]"));
accountE->setValidator(new QRegExpValidator(evAccount, this));
QRegExp evKodokpo(tr("[0-9]"));
kodokpoE->setValidator(new QRegExpValidator(evKodokpo, this));
QRegExp evMfoInmpNsvd(tr("[0-9]"));
mfoE->setValidator(new QRegExpValidator(evMfoInmpNsvd, this));
inmpE->setValidator(new QRegExpValidator(evMfoInmpNsvd, this));
nsvdE->setValidator(new QRegExpValidator(evMfoInmpNsvd, this));
QRegExp evPhone(tr("[0-9+() -]"));
phoneE->setValidator(new QRegExpValidator(evPhone, this));
//end

btnBox = new QDialogButtonBox(Qt::Horizontal, this);
btnBox->addButton(tr("Записать"), QDialogButtonBox::AcceptRole);
btnBox->addButton(tr("Отмена"), QDialogButtonBox::RejectRole);

gridLay = new QGridLayout(this);
gridLay->setMargin(15);
gridLay->setSpacing(10);

gridLay->addWidget(nameL, 1, 0);
.
бля-бля-бля
.
gridLay->addWidget(btnBox, 10, 1, 1, 2);

gridLay->setColumnStretch(1, 2);
gridLay->setRowStretch(10, 2);
grBox->move(10, 10);
grBox->resize(580, 360);
grBox->setLayout(gridLay);

connect(btnBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(btnBox, SIGNAL(rejected()), this, SLOT(reject()));

>

И другая функция:

bool FormsAddEditSp::buttonFSkAdd() if(exec() == QDialog::Accepted) finList text() text() text() text() text() text() text() text() text(); 
DbConnect *fdb = new DbConnect(this);
fdb->insertDT(tr("firm"), tr("name,description,account,mfo,address,phone,kod_okpo,inmp,nsvd"), finList);
delete fdb;
QMessageBox::about(this, tr("Внимание!"), tr("Всё работает. "));
return true;
>
return false;
>

Как сделать, что бы не добравшись до второй функции, можно было выяснить QLineEdit полные или пустые.

Алексей1153
10.5.2011, 23:13
Цитата(fortero @ 11.5.2011, 2:01)

Как сделать, что бы не добравшись до второй функции, можно было выяснить QLineEdit полные или пустые.

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

Виджет 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 styleScreenshot in Windows style

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

enum QLineEdit::EchoMode

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

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

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

acceptableInput : const bool

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

alignment : Qt::Alignment

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

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

cursorPosition : int

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

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

displayText : const QString

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

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

dragEnabled : bool

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

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

echoMode : EchoMode

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

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

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

frame : bool

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

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

hasSelectedText : const bool

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

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

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 : int

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

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

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

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

modified : bool

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

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

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

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

readOnly : bool

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

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

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

redoAvailable : const bool

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

selectedText : const QString

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

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

text : QString

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

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

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

undoAvailable : const bool

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

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

QLineEdit::QLineEdit ( QWidget * parent = 0 )

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

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

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

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

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

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

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

QLineEdit::~QLineEdit ()

void QLineEdit::backspace ()

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

void QLineEdit::clear () [slot]

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

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.

void QLineEdit::copy () const [slot]

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

QMenu * QLineEdit::createStandardContextMenu ()

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

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

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

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

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

int QLineEdit::cursorPositionAt ( const QPoint & pos )

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

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

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

void QLineEdit::cursorWordBackward ( bool mark )

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

void QLineEdit::cursorWordForward ( bool mark )

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

void QLineEdit::cut () [slot]

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

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

void QLineEdit::del ()

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

void QLineEdit::deselect ()

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

void QLineEdit::editingFinished () [signal]

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

void QLineEdit::end ( bool mark )

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

void QLineEdit::home ( bool mark )

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

void QLineEdit::insert ( const QString & newText )

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

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

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

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

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

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

QSize QLineEdit::minimumSizeHint () const [virtual]

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

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

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

void QLineEdit::paste () [slot]

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

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

void QLineEdit::redo () [slot]

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

void QLineEdit::returnPressed () [signal]

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

void QLineEdit::selectAll () [slot]

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

void QLineEdit::selectionChanged () [signal]

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

int QLineEdit::selectionStart () const

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

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

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

void QLineEdit::setValidator ( const QValidator * v )

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

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

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.

Как запретить пользователю вводить в QLineEdit что-либо кроме URL?

Как запретить пользователю вводить в QLineEdit что-либо кроме URL? Ситуация: нужна форма (необязательно QLineEdit , но я не нашёл специальной формы для ссылок), которая не даст пользователю ввести что-либо кроме ссылок. Видел формы, которые разрешают только ввод чисел, а не букв. Нужно что-то типа такого, только для ссылок. При этом при проверке не обязательно подключение к интернету. Знаю про класс QUrl , но его метод isValid() пропускает и нерабочие URL почему-то.

Отслеживать
задан 13 мар 2019 в 9:10
21 2 2 бронзовых знака
Что вы подразумеваете под нерабочими URL?
13 мар 2019 в 9:28

@maestro Рабочие -- с правильным синтаксисом. Но они могут вести на несуществующую страницу, например

13 мар 2019 в 9:30

Правильный синтаксис - это синтаксис, соответствующий RFC 3986, и метод isValid проверяет URL на соответствие этому стандарту. Приведите примеры нерабочих URL, которые пропускает метод isValid .

Qlineedit как заблокировать

Есть еще один метод, который вы можете использовать – это метод isChecked, который возвращает true или false, показывая состояние выбора переключателя.

Как и виджет QLineEdit, виджет QTextEdit используется для ввода данных пользователем в виде текста.

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

Чтобы получить от пользователя введенный текст, мы можем использовать метод toPlainText и метод кнопки clicked.co

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

Метод setUndoRedoEnabled отключает / включает возможность для пользователя использовать функции Undo и Redo с помощью клавиш Ctrl + Z и Ctrl + Y.

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

И в PyQt5 есть виджет QInputDialog, который позволяет создавать множество различных диалоговых окон для ввода данных различными способами.

И самое распространенное диалоговое окно – это ввод текста.

Оно представляет собой простое поле ввода и две кнопки, ОК и Отмена.

Функция getText возвращает два значения, поэтому мы устанавливаем две переменные для них.

Первая переменная input получает ввод пользователя, вторая переменная получает значение True или False, указывающее, была ли нажата кнопка OK или нет.

Далее есть диалоговое окно ввода целого числа.

Здесь вы можете использовать стрелки для изменения целочисленного значения или непосредственно ввести значение самостоятельно.

Следующее окно – это окно выбора элемента.

И здесь мы сначала определяем список / кортеж строк, отображаемых в качестве элементов.

И последнее диалоговое окно – это окно ввода чисел с плавающей запятой.

Здесь вы также можете использовать стрелки для изменения значения или непосредственно ввести значение самостоятельно.

QMessageBox – это виджет, который используется для создания диалоговых окон для отображения различных сообщений и кнопок.

Как правило, в приложении определяется метод, который открывает окно сообщения.

И этот метод связывается с какой-нибудь кнопкой или событием приложения.

Здесь метод setWindowTitle устанавливает заголовок окна сообщения.

Метод setText устанавливает текст под заголовком.

Метод exec открывает окно сообщения.

Окно сообщения имеет 4 различных типа значков, которые можно изменить с помощью метода setIcon.

В окне сообщения по умолчанию используется кнопка «ОК».

Однако на самом деле существует более десятка различных кнопок, которые QMessageBox предлагает для использования.

Используя функцию setStandardButtons, мы можем установить другой тип кнопки.

Когда окно открывается, вокруг кнопки «ОК» есть синий контур.

Это обозначение кнопки по умолчанию.

Используя функцию setDefaultButton, мы можем изменить кнопку по умолчанию.

По умолчанию у нас есть только одна область в QMessageBox, где мы показываем текст.

Однако есть еще две дополнительные области, которые мы можем разблокировать, чтобы добавить больше текста.

Первая область – это дополнительный текстовый раздел в самом окне сообщения, который мы можем определить с помощью функции setInformativeText.

Вторая область текста отображается в расширении окна.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *