2012-01-20 5 views
2

내 응용 프로그램에서 공백을 없애려면 어떻게합니까? enter image description here내 QTableWidget에서이 공백을 제거하는 방법은 무엇입니까?

QTableWidget (파란색 화살표)의 공백을 제거하고 싶습니다. 어떻게해야합니까?

gridLayout = QGridLayout() 

    #add other widgets 

    currentItemsTable = QTableWidget(4, 2) 
    currentDeviceIconLabel = QLabel("Current Device Icon: ") 
    self.currentDeviceIcon = QLabel() 
    currentAppIconLabel = QLabel("Current App Icon: ") 
    self.currentAppIcon = QLabel() 
    currentTitleLabel = QLabel("Current Title: ") 
    self.currentTitle = QLabel(self.getCurrentTitle()) 
    currentSubtitleLabel = QLabel("Current Subtitle: ") 
    self.currentSubtitle = QLabel(self.getCurrentSubtitle()) 

    currentItemsTable.setCellWidget(0, 0, currentDeviceIconLabel) 
    currentItemsTable.setCellWidget(0, 1, self.currentDeviceIcon) 
    currentItemsTable.setCellWidget(1, 0, currentAppIconLabel) 
    currentItemsTable.setCellWidget(1, 1, self.currentAppIcon) 
    currentItemsTable.setCellWidget(2, 0, currentTitleLabel) 
    currentItemsTable.setCellWidget(2, 1, self.currentTitle) 
    currentItemsTable.setCellWidget(3, 0, currentSubtitleLabel) 
    currentItemsTable.setCellWidget(3, 1, self.currentSubtitle) 
    currentItemsTable.horizontalHeader().hide() 
    currentItemsTable.resizeColumnsToContents() 
    currentItemsTable.resizeRowsToContents() 
    currentItemsTable.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) 
    gridLayout.addWidget(currentItemsTable, 1, 4, 8, 2) 

는 또한 어떻게이 QTableWidget은 행과 열 내용으로 크기를 조정합니까 : 여기

내 응용 프로그램에 대한 코드? 나는 스크롤 바를 원하지 않는다.

+0

제 생각에 가장 좋은 해결책은'QTableWidget'을 전혀 사용하지 않는 것입니다! 'QGridLayout'로 쉽게 할 수 있습니다. – Lol4t0

+0

@ Lol4t0 QTableWidget없이 위젯이 보이는 방식이 마음에 들지 않았습니다. 나는 흰 바탕과 그리드 라인을 원했다. –

+0

배경을 흰색으로 설정하고 격자 선에'QFrame'을 사용할 수 있습니다. – Lol4t0

답변

4

나는 당신이 사용되어야한다고 생각 :

currentItemsTable.horizontalHeader().setStretchLastSection(True) 
currentItemsTable.verticalHeader().setStretchLastSection(True) 

당신은 후에이 전화의 크기를 조정 .... toContents을해야한다() 및 내용에 대한 크기를 조정하려고 언제든지 먼저 setStretchLastSection (거짓)해야한다, 예 :

currentItemsTable.verticalHeader().setStretchLastSection(False) 
currentItemsTable.resizeRowsToContents() 
currentItemsTable.verticalHeader().setStretchLastSection(True) 

또는 크기를 변경하면 이상한 결과가 발생합니다.

+1

마지막 셀을 늘린 후에 분배의 균형을 유지할 수있는 방법이 있습니까? –

+1

당신은 헤더의 너비를 계산하고 QtableView.setColumnWidth (column, width)를 사용하여 모든 열에 대해 균형 잡힌 호출을 할 수 있습니다. 아마도 setStretchLastSection (True) 호출을 사용하여 호출을 피하기 위해 마지막 열을 조금 크게 만들어야 할 것입니다. 가로 스크롤 막대가 있지만 시도하지 않았습니다. 마지막 섹션을 늘리기 전에 열의 크기를 조정하십시오. 시도하지는 않았지만 일반적으로 문제가있는 마지막 것이 아닌 경우 일반적으로 시도합니다. – skuda

관련 문제