2009-06-08 5 views
4

QLineEdit에 문제가 있습니다. 이 줄 편집에서 시작되도록 탭 순서를 설정해도 일단 화면이로드되면 줄 편집은 자동으로 포커스를 얻지 못합니다.Qt 4.5 QLineEdit에서 포커스가 작동하지 않습니다.

나는이 두 라인을 시도했다 :

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

그러나 이것은 여전히 ​​효과가 없습니다. 그래서 어쩌면 누군가가 당신의 도움, 보리스 사전에 동일한 문제 ...

감사를 경험

+1

초기 테스트에서는 윈도우의 showEvent()를 재정의 할 수 있습니다. showEvent()에서 'this-> lineEdit_password-> setFocus();'를 호출하십시오. – Krsna

답변

8

입니다. Boris.

2

가 작동합니다는 QWidget의)합니다 (showEvent을 무시, 대단히 Krsna 감사합니다

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

lineEdit가 포커스를 얻습니다. 다른 위젯이이 두 줄 뒤에 포커스를 설정했다고 생각합니다. 초점은 다음 응용 프로그램이 무료로 한 번 설정됩니다

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

: 다시 한 번 감사, 타 솔루션은 SINGLESHOT 타이머를 사용하는 보리스

관련 문제