Ho un QGLWidget, che voglio ridimensionare a una determinata risoluzione (più grande della finestra che lo contiene). La mia intenzione è che la finestra si espanda fino a quando il widget non si adatta all'interno, ma non riesce a trovare un modo per farlo.Ridimensiona finestra per adattarsi al contenuto
Ho provato diversi comandi dopo aver ridimensionato QGLWidget per farlo funzionare senza successo. Elencherò i risultati qui:
- non fare nient'altro: il Widget si sovrappone all'intera finestra. Alla fine verrà ridimensionata per adattarsi nuovamente dentro la finestra più piccola
mainWindow.adjustSize()
: Il widget viene ridimensionata a (0, 0)mainWindow.resize(mainWindow.sizeHint())
: vedi sopramainWindow.resize(mainWindow.minimumSizeHint())
: vedi sopra
Ho anche letto in this thread, che prima di eseguire il ridimensionamento della finestra principale I è necessario eseguire il ciclo degli eventi per ricalcolare le nuove dimensioni, quindi ho inserito QCoreApplication::processEvents
per farlo, senza alcun effetto visibile.
Quindi, come ridimensionare la finestra tramite il widget?
Modifica
Il GLWidget non è l'unico widget di della finestra. È incorporato nello splitter insieme a una casella di gruppo.
Mentre questo ridimensiona davvero la finestra alla dimensione necessaria che impedisce ulteriormente il ridimensionamento da parte dell'utente. Dalla documentazione: 'Imposta le dimensioni minima e massima del widget su s, impedendole così di crescere o restringersi. Ho appena provato a salvare e ripristinare le vecchie dimensioni minime e massime, ma questo non comporta alcun cambiamento . – Nobody
Invece di 'setFixedSize()', prova 'setMinimumSize()', e usa 'setSizePolicy()'. Hai davvero molto controllo su come le cose si espandono e reagiscono usando 'setSizePolicy()'. 'setFixedSize()' fa un sacco di cose contemporaneamente, quindi probabilmente non è quello che vuoi in questo caso. – phyatt
'minimumSize' sembra anche la cosa sbagliata per me. L'utente dovrebbe essere in grado di ridimensionare arbitrariamente. Ho solo bisogno della finestra per far apparire la dimensione che si adatta alla dimensione richiesta del 'QGLWidget'. – Nobody