2011-08-23 10 views
10

Sto tentando di recuperare parte dello schermo nella mia applicazione. Ho una barra di ricerca che è un QLineEdit di base e occupa spazio. Nella mia barra dei menu, ho facilmente spazio sufficiente per contenere questa casella di ricerca, ma non riesco a capire come ottenere LineEdit nella barra dei menu.Come aggiungere un QLineEdit alla barra dei menu

Qualcuno può aiutarmi ad aggiungere questo a una barra dei menu?

Sto usando Qt 4.7.

Ecco un'immagine di ciò che sto tentando di realizzare. È un'immagine piuttosto semplice, ma sto cercando di usare la metà destra della barra dei menu come una casella di ricerca.

enter image description here

risposta

16

Usa QWidgetAction. QWidgetAction serve per l'inserimento di widget personalizzati in contenitori basati su azioni, come le barre degli strumenti.

Ecco un esempio per aggiungere un ProgressBar alla barra dei menu:

QWidgetAction *widgetAction = new QWidgetAction(this); 
widgetAction->setDefaultWidget(new QProgressBar(this)); 
menubar.addAction(widgetAction); 
+0

@Andy Sai se questo può essere fatto tramite Qt Designer? – Dewsworld

5

Si potrebbe utilizzare

vuoto QMenuBar :: setCornerWidget (QWidget * widget Qt :: corner corner = Qt :: toprightcorner

per aggiungere il widget nel menu.

+1

Wow .. Dopo più di mezza giornata di diverse prove ed errori questo semplice metodo ha risolto il mio problema :-) (avevo bisogno di aggiungere un orologio all'angolo destro della mia applicazione sulla stessa "linea" con la barra dei menu) Grazie! – ClimbingLung

+0

Grazie. Ha risolto il mio problema elegantemente. – rugi

Problemi correlati