2009-11-14 7 views
9

Est-il possible de définir le remplissage des cellules QTableView? Je m'attendrais à ce que cela soit possible en utilisant des feuilles de style CSS, mais la documentation ne décrit pas une méthode pour le faire.Comment définir le remplissage des cellules QTableView via CSS?

La feuille de style qui suit n'a pas l'effet désiré:

QTableView { 
    padding: 5px; 
} 

car elle influe sur la propriété de remplissage du widget dans son ensemble, et non pas des cellules individuelles.

Répondre

6

Je sais c'est une vieille question, mais j'ai été aux prises avec récemment.

Je trouve que par la mise en

tableView->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

le rembourrage défini dans votre CSS sera ensuite appliquée au haut et en bas de la cellule, aussi!

+0

Un grand merci pour votre réponse! –

+2

Notez que cette réponse est disponible pour Qt 5.0, pas pour les versions 4.x – Frodon

11

j'ai réussi à le faire fonctionner en utilisant le spécificateur sous contrôle ::item comme suit:

QTableView::item 
{ 
    border: 0px; 
    padding: 5px; 
} 

Notez que la définition de la propriété border est nécessaire pour que cela fonctionne ici. En outre, ce n'est pas super idéal, car il semble seulement influencer le remplissage gauche et droite de la cellule QTableView. Je peux vivre avec pour l'instant cependant.

+2

Est-ce que quelqu'un sait pourquoi le «border: 0px; est nécessaire pour faire ce travail? – Krsna

+1

L'entrée [Qt Style Sheet page] (http://doc.qt.nokia.com/4.7-snapshot/stylesheet-reference.html) des notes QTableView: 'Avertissement: Si vous ne définissez qu'une couleur d'arrière-plan sur un QTableCornerButton, l'arrière-plan peut ne pas apparaître à moins que vous définissiez la propriété border à une certaine valeur. Cela est dû au fait que, par défaut, QTableCornerButton dessine une bordure native qui chevauche complètement la couleur de fond. Il est possible que le même type d'exigence s'applique ici pour le remplissage. –

+1

Ne fonctionne pas pour moi. Chaque fois que je clique sur une autre cellule, le texte est invisible car un rectangle blanc est dessiné dessus. – Trilarion

Questions connexes