Sto tentando di ridimensionare automaticamente il contenuto di QTreeView
. Questa è la mia configurazione: sto cercando di creare un suggerimento "intelligente" che sia un QWidget
con Qt.Tool | Qt.FramelessWindowHint
come il suo WindowFlags
, che funziona bene. Contiene un layout con alcuni pulsanti (la cui dimensione è costante) e lo QTreeView
. Ora, ogni volta che vengono aggiunte linee al modello di QTreeView
, il QTreeView
dovrebbe aumentare automaticamente le sue dimensioni per evitare barre di scorrimento verticali.Rendi QTreeView ridimensionato automaticamente al contenuto
L'impostazione QSizePolicy.Expanding
su entrambi i widget strumento e QTreeView
non ha modificato nulla, forse mi manca qualche flag aggiuntivo o qualcosa qui.
Ho anche provato il seguente metodo forza bruta:
class ToolTip:
def __init__(self):
...
self.itemView.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel)
self.itemView.verticalScrollBar().rangeChanged.connect(self.resizeViewVertically)
def resizeViewVertically(self, min, max):
self.resize(self.width(), self.height() + max)
che funziona la maggior parte del tempo, ma non sempre. Ogni tanto (ogni due volte, per essere precisi, ma non so se sia una coincidenza o meno), usando questo codice, la vista si ridimensiona correttamente (cioè tutti i contenuti sono adatti e non ci sarebbe bisogno di barra di scorrimento), ma la barra di scorrimento non scompare, consentendo lo scorrimento nello spazio vuoto sotto l'ultima riga.