2017-10-11 14 views
0

저는 꽤 오래 wxPython을 사용해 왔습니다. 나는 대부분의 객체에서 꽤 좋은 핸들을 가지고 있으며 대부분의 경우 문제없이 패널 레이아웃을 만들 수있었습니다.wx.ComboBox가 다른 패널 뒤에 숨어 있습니다.

내가하려는 것은 두 개의 목록 (콤보 상자)을 표시하는 것입니다. 하나는 사용자가 선택하여 오른쪽의 목록에 추가 할 수있는 가능한 옵션의 전체 목록 (왼쪽에 있음)을 나타냅니다. 기능은 잘 작동하지만, 자신 시각적 wxNotebook 객체의 동일한 탭에 포함 된 다른 패널에 의해 가려해진다 개체 (첨부 이미지 붉은 사각형 참조).

Combo boxes become obscured by panel containing button

상부 패널의 복합체 인 3 개의 패널. 첫 번째는 콤보 박스와 일부 스페이서를 포함합니다. 두 번째 (중간)에는 사용자가 항목을 추가/제거 할 수있는 버튼이 있습니다. 세 번째는 첫 번째와 마찬가지로 콤보 상자와 일부 스페이서입니다. 가운데 패널의 크기는 괜찮지 만 콤보 상자의 높이를 조정할 수는 없습니다.

모든 옵션이 표시되도록 콤보 상자를 wx.CB_SIMPLE 레이아웃으로 만들고 싶습니다. 이상적으로 옵션 수가 패널 높이를 초과하면 세로 스크롤 막대가 표시됩니다.

다른 패널 뒤에있는 콤보 상자를 잃지 않고이 작업을 수행하는 가장 쉬운 방법은 무엇입니까?

답변

0

노트북 페이지 안에 3 개의 패널이 중첩되어 있지 않아도됩니다. 대신 중첩 된 사이 저와 함께 하나의 패널을 만들 것입니다. 모든 위젯을 보관할 수있는 하나의 수평 BoxSizer를 만들 수 있습니다. 그 안에는 왼쪽 콤보 박스를 sizer에 추가 할 수 있습니다. 다음으로 버튼을 넣을 수있는 수직 형 크기 조절기를 만듭니다 (추가, 제거, 삭제).

가로형 사이 저에 세로 형 크기 조정기를 추가하십시오. 이제 오른쪽 콤보 박스를 만들어 가로 사이 저에 추가하십시오. 이제는 동일한 설정 또는 가까이 있으며 패널이 서로 교차하지 않습니다.