0
QTableWidget의 머리글 크기를 조정해야합니다. 행과 열은 쉽습니다. 여기 QTableWidget의 머리글 높이 조정
내가 시험에 사용하는 샘플 코드이다 self.grid.horizontalHeader(). setResizeMode (QHeaderView.Fixed) 및 self.grid.horizontalHeader(). resizeSection (1, 20) 작동한다.#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class TagsInputDialog(QDialog):
def __init__(self, parent = None):
super(TagsInputDialog, self).__init__(parent)
self.setWindowTitle('test')
masterLayout = QVBoxLayout(self)
self.tags_list = []
t = QCheckBox()
# t = QLineEdit()
t.setMaximumWidth(30)
d = QHBoxLayout()
d.addStretch()
d.addWidget(t)
d.addStretch()
masterLayout.addLayout(d)
btn = QPushButton('test')
masterLayout.addWidget(btn)
self.connect(btn, SIGNAL("clicked()"), self.run_click)
self.grid = QTableWidget()
masterLayout.addWidget(self.grid)
self.fill_table()
def run_click(self):
for linha in range(0, self.grid.rowCount()):
if self.grid.cellWidget(linha, 0) is not None:
self.grid.cellWidget(linha, 0).children()
# for n in dir(self.grid.cellWidget(linha, 0)):
# print n
print '\n\n'
if self.grid.cellWidget(linha, 0).isChecked() :
print int(self.grid.item(linha, 0).text())
def fill_table(self):
self.grid.setSelectionBehavior(QTableWidget.SelectRows)
self.grid.setSelectionMode(QTableWidget.SingleSelection)
self.grid.setEditTriggers(QTableWidget.NoEditTriggers)
self.grid.verticalHeader().setDefaultSectionSize(20)
self.grid.setAlternatingRowColors (True)
self.grid.verticalHeader().setVisible(False)
self.grid.setColumnCount(3)
self.grid.setHorizontalHeaderLabels(['Data0','Data1','Data2'])
self.grid.setRowCount(5)
line = 0
self.grid.setRowHeight(0,20)
for n in ['data1','data2','data3','data4','data5']:
self.grid.setCellWidget(line, 0, self.checkBoxGrid('mark'))
self.grid.setCellWidget(line, 1, QCheckBox())
item = QTableWidgetItem()
self.grid.setItem(line, 2,item)
item.setText(n)
line +=1
# this should work
self.grid.horizontalHeader().setResizeMode(QHeaderView.Fixed)
self.grid.horizontalHeader().resizeSection(1, 20);
def checkBoxGrid(self, label = ''):
w = QWidget()
l = QHBoxLayout(w)
l.setContentsMargins(0,0,0,0)
l.addStretch()
c = QCheckBox(label)
l.addWidget(c)
l.addStretch()
return w
def main():
app = QApplication(sys.argv)
form = TagsInputDialog()
form.show()
app.exec_()
if __name__ == '__main__':
main()
작동하지 않습니다. 행 높이가 아닌 열 너비의 크기를 조정합니다. – Starglider