2011-12-20 3 views
8

두 개의 항목, 단어 및 숫자가 포함 된 목록이 있습니다.이 목록은 tablewidget을 사용하여 표시됩니다.PyQt : 개별 헤더마다 다른 헤더 크기를 어떻게 설정합니까?

내 목표는 두 개의 열과 필요한 행을 가진 표를 만드는 것이지만 단어가있는 열의 머리글은 numbers 열보다 커야합니다.

콘텐츠에 크기 조정 열을 사용할 수는 있지만 크기 조정 후 표 주위에 빈 흰색 공백이없는 표가 필요합니다.

GUI 코드 생성시 QtDesigner.Thanks를 사용하고 있습니다.

답변

14

QHeaderView 클래스의 몇 가지 방법으로 원하는 것을 할 수 있습니다. 가장 간단한은 다음과 같습니다

table.horizontalHeader().setStretchLastSection(True) 

그들이 (그리고 사용자가 크기 조정)로이 다른 컬럼의 폭을 떠나는 마지막 열은 자동으로 테이블에서 사용 가능한 공간에 맞게 크기가 조정되어 있는지 확인합니다.

또는 열의 ResizeMode을 설정하는 방법이 있습니다.

Qt5 들어

: QT4 들어

table.setColumnWidth(1, 80) 
table.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch) 

이 두 번째 열의 폭을 고정하고, 제 1 열이 자동으로 나머지 공간을 채우도록 크기가 조정되도록해야

table.setColumnWidth(1, 80) 
table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch) 

(그러나 방지 사용자에 의한 다른 크기 조정). Qt5에서

+0

Qt는 Desginer를 사용하는 것을 달성 할 수있는 방법이 있나요? 옵션이 있습니까? – GiannisIordanou

+0

디자이너에는 'ResizeMode'에 대한 옵션이 없지만 'setStretchLastSection'(즉, 속성 편집기에서 'Header/horizontalHeaderStrechLastSection')에 대한 옵션이 있습니다. – ekhumoro

4

이를위한 최적의 솔루션, 당신은 setResizeMode 대신 setSectionResizeMode을 사용할 수 있습니다

tabv = QTableView() 
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) 

또는

tabv.horizontalHeader().setSectionResizeMode(1) 
관련 문제