PySide - PyQt : Comment faire ensemble QTableWidget la largeur de la colonne en tant que proportion de l'espace disponible?

Je suis le développement d'une application informatique avec PySide et je suis en utilisant le QTableWidget. Disons que mon tableau a 3 colonnes, mais les données qu'ils contiennent est très différent, comme (pour chaque ligne) une longue phrase dans la première colonne, puis 3 chiffres dans les deux dernières colonnes. J'aimerais avoir ma table redimensionner afin de l'ajuster à sa taille pour les données, ou au moins être en mesure pour définir les tailles de colonne que (dire) 70/15/15 % de l'espace disponible.

Quelle est la meilleure façon de le faire ?

J'ai essayé table.horizontalHeader().setResizeMode(QHeaderView.Stretch) après la lecture de cette question mais il fait 3 colonnes de la même taille.

J'ai aussi essayé de table.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents) grâce à Fabio's commentaire mais il ne remplit pas tout l'espace disponible au besoin.

Ni Interactive, Fixed, Stretch, ResizeToContents de la QHeaderView documentation semblent me donner ce dont j'ai besoin (voir la deuxième édition).

Toute aide serait appréciée, même si c'est pour Qt/C++ ! Je vous remercie beaucoup.


EDIT : j'ai trouvé une sorte de solution de contournement, mais c'est toujours pas ce que je suis à la recherche de :

header = table.horizontalHeader()
header.setResizeMode(QHeaderView.ResizeToContents)
header.setStretchLastSection(True)

Il serait mieux si il existait un setStretchFirstSection méthode, mais malheureusement, il ne semble pas en être un.


EDIT 2 :

La seule chose qui peut être modifié dans le tableau est la dernière colonne, l'utilisateur peut entrer un nombre à la. Les flèches rouges indiquent ce que j'aimerais avoir.

Voici ce qui se passe avec StretchPySide - PyQt : Comment faire ensemble QTableWidget la largeur de la colonne en tant que proportion de l'espace disponible?

Voici ce qui se passe avec ResizeToContents PySide - PyQt : Comment faire ensemble QTableWidget la largeur de la colonne en tant que proportion de l'espace disponible?

  • Essayez QHeaderView.ResizeToContents au lieu de QHeaderView.Stretch
  • Cela fonctionne, mais ce n'est pas tout à fait ce que je cherche, car avec ResizeToContents, comme mes colonnes ne sont pas assez grands, ils ne remplissent pas l'espace disponible. Je vais modifier de sorte qu'il devient plus clair.
  • Pour votre 2ème édition, je crois que la bonne chose à faire est de définir la colonne avec une valeur par défaut de la largeur de votre estimation approximative, puisqu'il peut être étiré les utilisateurs peuvent modifier plus tard comme ils le souhaitent.
InformationsquelleAutor AdrienW | 2016-06-29