Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: StogovOleg от Октябрь 17, 2007, 14:22



Название: Сигнал lostFocus() у QLineEdit
Отправлено: StogovOleg от Октябрь 17, 2007, 14:22
Доброго времени суток.

qt-3.3.3
на форму помещаю QTabWidget, на одну из его страниц помещаю QLineEdit c именем "LineEdit1", сигнал lostFocus() этого QLineEdit подключаю к слоту где делаю только следующее:

std::cerr<<focusWidget()->name()<<endl<<focusWidget()->className()<endl;
//важно делать именно так, а не через QMessageBox чтобы не "нарушать" фокус

по форме раскидываю еще несколько кнопок и LineEdit.

Запускаю. Ставлю фокус в QLineEdit на TabWidget. Теперь если нажимаю клавишу Tab, то в поток ошибок пишется имя "LineEdit1" и имя класса "QLineEdit". Все как должно быть.

Снова ставлю фокус в QLineEdit на TabWidget. Перехожу на другую страницу и сразу возращаюсь назад на страницу с QLineEdit и нажимаю кнопку Tab, и в поток ошибок НИЧЕГО НЕ ПИШЕТСЯ.

На одну из кнопок (с focusPolicy = NoFocus) повесил тот же слот и после перехода по закладкам TabWidget нажав на нее вижу, что focusWidget() все равно LineEdit1.

почему не испускается сигнал lostFocus()?