2016-10-10 2 views
2

나는 내가 FooComponent에 대한 탭 순서를 설정할 수 없습니다프로모션 위젯으로 탭 순서를 설정하는 방법은 무엇입니까?

Qt는 창조주 (디자이너)에서
QWidget 
    QFrame promoted to FooComponent 
    QLineEdit a (internal tab order 1) 
    QLineEdit b (tab order 2) 
    QLineEdit c (tab order 1) 

다음과 같은 디자인을 가지고있다. 그래서 QWidget을 활성화하면 c에 커서가 표시되지만 a에 커서를 넣을 수 있습니다.

계단식 구성 요소로 탭 순서를 처리하려면 어떻게해야합니까?

답변

2

setFocuProxy으로이 작업을 수행 할 수 있습니다. FooComponent에서 focus-proxy를 내부 탭 순서의 첫 번째 하위 위젯으로 설정하십시오.

Qt 디자이너에서 QFramefocusPolicyTabFocus으로 변경하고 순서가 올바른 위치에 오도록 탭 순서를 재설정하십시오.

+0

아주 좋은 힌트. 첫 번째 필드에만 초점이 맞춰져 어떤 이유로 작동합니다. 'setFocus'를 시도했지만 작동하지 않습니다. 그러나 탭 순서 자체는 작동하지만 "필드 1"로 시작하지는 않습니다. –

+0

@HorstWalter. 귀하의 질문에 디자인을 사용하여 예제를 만들었고, 그것은 모두 잘 작동합니다. 'FooComponent'에서 탭 순서를 설정했는지, "필드 1"에 포커스 프록시가 설정되어 있습니까? 실제 디자인이 더 복잡하면 ui 파일을 게시하십시오. – ekhumoro

관련 문제