2014-05-13 14 views
5

Voglio fare un QToolBar avere 3 colonne di pulsanti quando sono agganciati sul lato sinistro dello QMainWindow, ma ho 1 riga quando è agganciato nella parte superiore della finestra principale. È possibile?Crea una barra degli strumenti con un layout di griglia

Ho provato a utilizzare un QToolBar con un layout personalizzato, ma il normale comportamento di ridimensionamento dello QToolBar non funziona (non nasconde i widget dietro un pulsante di espansione quando è troppo piccolo). Il pulsante di espansione non funzionante non è un grosso problema, ma il problema più grande è che il layout personalizzato impedisce alla finestra principale di essere più piccola della barra degli strumenti.

risposta

6

Sono riuscito a ottenere il comportamento desiderato inserendo ciascuna riga di Pulsanti strumento in un QHBoxLayout, inserendo tale layout in un QWidget vuoto e chiamando toolBar->addWidget(widget) per ogni riga. Questo mi dà una barra degli strumenti della griglia quando la barra degli strumenti è montata a sinistra e una barra orizzontale singola quando viene montata nella parte superiore.

+0

Felice di averlo fatto! Potresti condividere alcune immagini a riguardo? – Tay2510

+1

Siamo spiacenti, non penso di poter condividere alcuna immagine. Ma posso descrivere come si comporta. La barra degli strumenti, quando ancorata a sinistra, è una griglia con 3 colonne e più righe. Quando riduco la finestra verticalmente in modo che la barra degli strumenti non abbia spazio sufficiente, le file di pulsanti inizieranno a scomparire dietro il normale pulsante "espandi" QT. Quando fai clic sul pulsante Espandi, appariranno le righe nascoste, anche se leggermente strane perché sono ancora raggruppate in 3. – pauld

+1

Quando la barra degli strumenti è agganciata in alto, sembra e si comporta quasi esattamente come una normale barra degli strumenti, con l'unica eccezione che quando la finestra principale viene ristretta orizzontalmente, i pulsanti inizieranno a collassare in gruppi di 3, anziché 1 alla volta . – pauld

Problemi correlati