2012-04-23 5 views
1

QPlainTextEdit 내에서 완성 제안을 위해 QListWidget을 자식으로 사용했습니다.상위 QWidget 영역에서 자식 QWidget 표시

제안 목록은 커서 아래에 표시되며 줄이 거의 가득 차면 목록 위젯의 일부가 텍스트 편집 테두리로 잘립니다. 상위 위젯 영역에서 하위 위젯을 강제로 표시 할 수 있습니까?

내가 가진 아이디어는 텍스트와 목록 편집 요소 "형제"를 만드는 것입니다. 이자형. 동일한 부모에게 추가하십시오. 그러나 이것은 내 이벤트 처리 메커니즘을 필요로 할 것입니다. (두 요소 사이의 부모 - 자식 관계를 가정 할 때).

Katepart component을 공부하고 KateView의 직계 하위 항목 인 KateCompletionWidget (제안 사항 표시)이 있으며이를 실행할 때 (예 : Kate 텍스트 편집기) 목록이 표시됩니다. 텍스트 편집 테두리.

답변

1

불행히도 부모의 QWidget rect 외부에서 칠하는 방법은 없습니다. 형제의 접근법은이 문제에 대한 대중적인 해결책입니다. 또 다른 접근 방법은 자식이 부모에게 그려야하는 것을 알리는 것이지만, 페인트 이벤트를 다시 구현해야하기 때문에 좀 더 발전 될 수 있습니다.

0

오늘 나는 가능성있는 방법을 발견했습니다. QListWidget 요소의 setWindowFlags(Qt::ToolTip) 메서드를 기반으로합니다. 그러나 위치 지정 및 이벤트 처리에는 약간의 변화가 있습니다.