如何控制QTableWidget标头的外观

时间:2017-01-15 20:35:24

标签: python pyqt qtablewidget qtablewidgetitem

如何更改QTableWidget标题字体及其内容边距和间距? 我想使“Column 0”,“Column 1”的字体变小,并且列名和标题边之间没有间距。

enter image description here

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])

columns = ['Column 0', 'Column 1', 'Column 2']
items = [['Row%s Col%s'%(row,col) for col in range(len(columns))] for row in range(100)]

view = QtGui.QTableWidget()
view.setColumnCount(len(columns))
view.setHorizontalHeaderLabels(columns)
view.setRowCount(len(items))   
for row, item in enumerate(items):
    for col, column_name in enumerate(item):
        item = QtGui.QTableWidgetItem("%s"%column_name)
        view.setItem(row, col, item)            
    view.setRowHeight(row, 16)

view.show()
app.exec_()

2 个答案:

答案 0 :(得分:1)

您可以使用以下命令更改fontsize:

item = QtGui.QTableWidgetItem()
font = QtGui.QFont()
font.setPointSize(14)
item.setFont(font)

我不知道如何更改边距和间距。如果我发现,我可以更新这个答案。 我建议使用QTDesigner来处理布局。

编辑: 在QtDesigner中,您可以使用以下选项更改水平和垂直标题大小:horizo​​ntalHeaderDefaultSectionSize和verticalHeaderDefaultSectionSize以及标题字体,方法是单击它并在属性中选择所需的字体。 QtDesigner

答案 1 :(得分:1)

我找不到擦除边距的方法,但我可以建议一个临时的解决方法。 在填写表格

之前,您可以尝试resizeColumnsToContents()

对于字体,您可以尝试执行下一步

afont = PyQt4.QtGui.QFont()
afont.setFamily("Arial Black")
afont.setPointSize(11)
atable.horizontalHeaderItem(0).setFont(afont)

如果您想看到更多家庭,您可以随时查看QtDesigner中的可用家庭。

标题项只不过是QTableWidgetItems。因此,您所要做的就是访问它们并将它们视为任何QTableWidgetItem

尽管如此,answear几乎与前一个相同。