Sto sviluppando un'applicazione per computer con PySide e sto utilizzando QTableWidget. Diciamo che la mia tabella ha 3 colonne, ma i dati che contengono sono molto diversi, come (per ogni riga) una lunga frase nella prima colonna, quindi i numeri a 3 cifre nelle ultime due colonne. Mi piacerebbe che lo ridimensioni la tabella per adeguare la sua dimensione ai dati, o almeno per potere impostare le dimensioni delle colonne come (ad esempio) il 70/15/15% dello spazio disponibile.PySide - PyQt: come impostare la larghezza della colonna QTableWidget come proporzione dello spazio disponibile?
Qual è il modo migliore per farlo?
Ho provato table.horizontalHeader().setResizeMode(QHeaderView.Stretch)
dopo aver letto this question ma rende 3 colonne della stessa dimensione.
Ho anche provato table.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents)
grazie a Fabio 's comment ma non riempie tutto lo spazio disponibile in base alle esigenze.
Né Interactive
, Fixed
, Stretch
, ResizeToContents
dal QHeaderView documentation sembrano darmi quello che mi serve (vedi seconda modifica).
Qualsiasi aiuto sarebbe apprezzato, anche se è per Qt/C++! Grazie mille.
EDIT: ho trovato una specie di soluzione ma non è ancora quello che sto cercando:
header = table.horizontalHeader()
header.setResizeMode(QHeaderView.ResizeToContents)
header.setStretchLastSection(True)
Sarebbe meglio se esistesse un metodo setStretchFirstSection
, ma purtroppo non lo fa non sembra essere uno.
EDIT 2:
L'unica cosa che può essere modificato nella tabella è l'ultima colonna, l'utente può inserire un numero in esso. Le frecce rosse indicano cosa mi piacerebbe avere.
Ecco cosa succede con ResizeToContents
Prova QHeaderView.ResizeToContents anziché QHeaderView.Stretch – Fabio
Questo funziona, ma non è proprio quello che sto cercando, perché con 'ResizeToContents', poiché le mie colonne non sono abbastanza grandi, non riempiono lo spazio disponibile. Modificherò in modo che diventi più chiaro. – BusyAnt