버튼 클릭 슬롯에서 NULL 부모가있는 대화 상자를 만들고 exec()
대화 상자를 엽니 다. 대화 상자의 생성자 안에는 다음이 있습니다.Qt의 표시된 대화 상자에 입력 포커스를 설정하는 방법은 무엇입니까?
this->activateWindow();
this->raise();
this->setFocus();
대화 상자는 응용 프로그램 모달이며 매우 집중적으로 사용됩니다. 그러나 키보드 이벤트를 클릭하기 전까지는 키보드 이벤트에 응답하지 않습니다. 어떻게 대화 상자를 클릭하지 않고 포커스를 얻게합니까?
클래스는 다음과 같은 창 플래그가 설정된 QDialog 파생 클래스입니다.'(Qt :: CustomizeWindowHint | Qt :: FramelessWindowHint | Qt :: Tool | Qt :: WindowStaysOnTopHint' 그것은 자식이없고 부모도 없습니다. –
예, 키보드 이벤트를 가져오고, 대화 상자에 이벤트 필터를 설치하고, 대화 상자 생성자에서 this-> installEventFilter (this)를 작성하고, 위의 샘플에서 "focusNextChild()"함수를 사용하십시오. ? 대화 목자 파일에 그래서 당신이 뜻 – Naruto
위와 같이 keyPressEvent 기능과 CPP 파일 구현을 제공 선언 this-> installEventFilter (이) 무효 QDialogDerived :: keyPressEvent (QKeyEvent * 이벤트) { QLineEdit :: keyPressEvent (이벤트); // 여기에서 처리합니까? } –