Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: dr_Begemot от Июнь 22, 2009, 14:41



Название: Сигнал на изменение текста в QLineEdit
Отправлено: dr_Begemot от Июнь 22, 2009, 14:41
У сигнала textChanged есть один недостаток - он срабатывает в реальном времени, это мне не подходит... как сделать так, чтобы изменения вступали в силу например после нажатия на Enter или при потере фокуса?


Название: Re: Сигнал на изменение текста в QLineEdit
Отправлено: mugabe от Июнь 22, 2009, 14:47
Вы не поверите.
Открыл Assistent, нашел QLineEdit, нажал Ctrl+F и написал "focus".
Первая же найденная строка:

When editing is finished, either because the line edit lost focus or Return/Enter is pressed the editingFinished() signal is emitted.


Название: Re: Сигнал на изменение текста в QLineEdit
Отправлено: spectre71 от Июнь 22, 2009, 14:52
Как вариант
Код
C++ (Qt)
void MyWidget::focusOutEvent (QFocusEvent* event) {
 QWidget::focusOutEvent(event);
 ...
 ...
}
void MyWidget::keyPressEvent (QKeyEvent* event) {
 event->accept();
 if(event->key()==Qt::Key_Return  ||  event->key()==Qt::Key_Enter){
   ...
   ...
 }
}