Come posso auto-regolare le dimensioni di un QDialog a seconda della lunghezza del testo di uno dei suoi figli?

StackOverflow https://stackoverflow.com/questions/1675499

  •  16-09-2019
  •  | 
  •  

Domanda

Ho un QDialog sto lavorando con. È fatto un po 'come un QMessageBox. Ho notato che le dimensioni del QMessageBox (e la dimensione della sua etichetta) dipende dalle dimensioni del messaggio visualizzato.

Come faccio a rendere la dimensione del mio QDialog regolare automaticamente come un QMessageBox? Attualmente il mio QDialog contiene una casella di tasto e un'etichetta, e il QDialog è il layout verticale.

(so che potrei semplicemente usare la finestra di messaggio direttamente, ma alla fine avrò finestre di dialogo più complesse.)

È stato utile?

Soluzione

soluzione automatica:

Utilizzare i layout e linee guida delle dimensioni impostate su QSizePolicy::Expanding . In QtDesigner, una volta che tutti i tuoi figli sono immessi sul tuo QDialog, quindi fare clic sul Regola la dimensione pulsante quelli prossima layout. Il tuo QDialog sarà ridotta automaticamente in fase di esecuzione.

soluzione manuale:

La classe QWidget ha un metodo adjustSize che ridimensionare il QWidget per adattare il suo contenuto. Basta chiamare quando tutti i bambini sono stati impostati.

Altri suggerimenti

Impostare la finestra di dialogo per essere in espansione, e molto piccola. Quindi, assicurarsi di impostare il vostro messaggio prima di mostrare la finestra di dialogo. Quando mi hanno mostrato, si cercherà di trovare la sua dimensione corretta, in base alla dimensione degli oggetti in esso contenuti. (Questo accade in modo ricorsivo, quindi, se il dialogo non è il genitore diretta dell'etichetta in cui si mostra il tuo messaggio, assicurarsi che tutto tra l'etichetta e la finestra di dialogo è impostato per utilizzare i layout.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top