2009-06-08 1 views
4

У меня проблема с QLineEdit. Даже если я установил порядок табуляции для начала редактирования этой строки, после загрузки экрана LIne Edit автоматически не получит фокус.Qt 4.5 Фокус не работает на QLineEdit

Я также попытался с этими двумя линиями:

this->activateWindow(); 
this->lineEdit_password->setFocus(); 

Но это не имеет еще никакого эффекта. Так может быть, кто-то испытали тот же вопрос ...

Спасибо заранее за вашу помощь, Бориса

+1

В качестве первоначального теста вы можете попробовать переопределить showEvent() для окна. В showEvent() вызовите 'this-> lineEdit_password-> setFocus();' – Krsna

ответ

8

Другим решением является использование SingleShot таймера:

QTimer::singleShot(0,lineEdit,SLOT(setFocus())); 

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

2

Спасибо большой Кришны, перекрывая showEvent() в QWidget будет работать:

void OScreenLogin::showEvent(QShowEvent* e){ 
    this->activateWindow(); 
    this->lineEdit_password->setFocus(); 
    QWidget::showEvent(e); 
} 

ЛинияEdit получает фокус, я думаю, что другой виджет имел фокус, установленный после этих двух линий. Еще раз спасибо, Борис

 Смежные вопросы

  • Нет связанных вопросов^_^