Comment changer la police de l'en-tête QTableWidget ainsi que sa marge et son espacement de contenu? Je voudrais rendre la police pour "Column 0", "Column 1" plus petite et n'avoir aucun espacement entre le nom des colonnes et le bord d'en-tête.

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_()
1
alphanumeric 15 janv. 2017 à 23:35

2 réponses

Meilleure réponse

Je ne trouve pas de moyen d'effacer les marges, mais je peux suggérer une solution de contournement temporaire. Vous pouvez essayer de resizeColumnsToContents() avant de remplir le tableau avec des éléments

Pour les polices, vous pouvez essayer de faire le suivant

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

Si vous souhaitez voir plus de familles, vous pouvez toujours consulter celles disponibles dans QtDesigner.

Les éléments d'en-tête ne sont rien de plus que des éléments QTableWidget. Donc, tout ce que vous avez à faire est d'y accéder et de les traiter comme n'importe quel QTableWidgetItem

La réponse est presque la même que la précédente.

2
dterpas 18 janv. 2017 à 12:57

Vous pouvez modifier la taille de la police avec:

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

Je ne sais pas comment modifier la marge et l'espacement. Je peux mettre à jour cette réponse si je découvre. Je suggère d'utiliser QTDesigner pour gérer la mise en page.

Éditer: Dans QtDesigner, vous pouvez modifier la taille de l'en-tête horizontale et verticale avec les options: horizontalHeaderDefaultSectionSize et verticalHeaderDefaultSectionSize ainsi que la police d'en-tête en cliquant deux fois dessus et en sélectionnant la police souhaitée dans les propriétés. QtDesigner

2
Diego 15 janv. 2017 à 21:18