2015-01-06 3 views
3

격자 모양이있는 QDialog이 있습니다. 그리드는 가변 폭의 행으로 5 열 너비입니다. QDialog은 5 개의 각 열에 레이블이있는 미리 작성된 UI로 시작합니다. 그리드의 나머지 부분은 다음과 같이 작성됩니다. 각 행에 덧붙여Qt 그리드 레이아웃을 만드는 방법 자동 크기 열 너비

  • QLineEdit 0
  • QComboBox가 COLS 1-3에 추가된다 내지 컬럼에 첨가하고, 각 변수 및 QCheckBox 4 내지 컬럼 첨가
  • 항목의 다른 번호를 가지고

이것이 완료되면 0 열이 가장 넓은 열입니다. 열 1-4는 동일한 너비입니다. 일부 콤보 상자 항목 (1 ~ 3 열)은 너비가 너무 넓어서 "..."로 표시되지 않습니다. 확인란 열 (4)은 필요한 것보다 넓습니다. 나는 그 자체가 대화 상자를 포함하여 모든 빌어 먹을 위젯에 QWidget::adjustSize()을 사용해 보았고 모든 것에 적합하도록 자동 크기로 가져올 수 없다. 디버깅을 시도 할 때마다 각 열에 위젯의 너비를 인쇄했지만 내가 본 값은 화면에서 볼 수있는 방법이 아닙니다. 그리드 레이아웃이 각 열의 각 위젯을 자동으로 조정하여 가장 넓은 항목에 맞을만큼 넓게 보이도록 조정했지만 그 일을하지 않는 것 같았습니다. 어떤 종류의 setAutoColumnWidth 재산이 있습니까?

답변

1

레이아웃 열의 너비를 설정하려면 레이아웃 내부의 위젯에 대한 늘이기 값을 설정할 수 있습니다. 예를 들어, 동일한 폭에 대한 1 모든 위젯의 가로 스트레칭을 설정

lineEdit->sizePolicy().setHorizontalStretch(1); 
comboBox1->sizePolicy().setHorizontalStretch(1); 
comboBox2->sizePolicy().setHorizontalStretch(1); 
comboBox3->sizePolicy().setHorizontalStretch(1); 
checkBox->sizePolicy().setHorizontalStretch(1); 

특정 열을 넓게하고 싶은 경우

, 즉 열에 위젯 높은 신장 값을 설정.

+0

감사합니다. Nejat, 나는 상대방 스트레칭 요인으로 놀았습니다. QGridLayout이 자동으로이 문제를 처리하지 못하는 이유는 무엇입니까? – Qman

+0

@Qman 레이아웃은 위젯을 양식에 배치하는 방법입니다. 크기 조정은 레이아웃의 위젯 크기 정책, 최소 크기 및 최대 크기로 수행됩니다. 그래서 확실하게'QGridLayout'이 올바르게 처리합니다. 그러나 다른 기본 크기 정책을 사용하여 다른 유형의 위젯을 삽입 할 때 처음부터 동일한 크기가 아닌 것은 아닙니다. – Nejat

+0

다시 한번 감사드립니다 Nejat. 모든 크기 정책은 같았습니다 (Preferred, Preferred, 0, 0). 이상한 점은 처음 두 개의 열 (QLineEdit/QComboBox)이 필드를 표시하기 위해 늘어 났으며 마지막 세 열 (QComboBox/QComboBox/QCheckBox)은 서로 정확하게 동일한 너비였습니다. 세 번째 열은 데이터를 표시 할만큼 충분히 넓지 않은 유일한 열이었습니다. 마지막 열 (QCheckBox)은 필요한 것보다 넓었습니다. 내가 언급하는 것을 잊어 버린 한 가지는 모든 플랫폼에서 문제가 없지만 다른 플랫폼에서는 문제가되지 않는다는 것입니다. 차이점을 알아 내기 위해 노력했지만 아직 행운은 없습니다. – Qman

관련 문제