2013-02-24 18 views
5

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.

risposta

Problemi correlati