Seite 1 von 1

QMenu verstecken

Verfasst: 11. März 2010 15:51
von ChornHulio
Hallo

kann ich ein Menu nicht verstecken?

ui->menuSettings->setVisible(false);

funktioniert nicht. Warum?

Danke für eure Antworten!

Verfasst: 17. März 2010 09:14
von mathies
Hallo,

keine Ahnung ob Du das meinst aber probier mal:

Code: Alles auswählen

setWindowFlags( Qt::WindowSystemMenuHint );
Gruß

Verfasst: 17. März 2010 22:23
von ChornHulio
Danke für deine Antwort. Aber ich will nicht die ganze Menübar verstecken (und genau das macht das Flag, oder? - hab momentan kein Dev-System hier zum testen), sondern ich will nur ein Menüpunkt verstecken.

Verfasst: 18. März 2010 07:55
von mathies
Hallo,

ja dieser Befehl versteckt alles.

Falls ich noch was finde schreib ich Dir wieder :)

Verfasst: 18. März 2010 10:56
von Exasperation
Ein Menüpunkt ist in Qt meist eine QAction. Willst du den Menüpunkt komplett verschwinden lassen oder nur ausgrauen? Mit QAction::setEnabled( bool ) kannst du eine QAction ausgrauen, damit man sie nicht mehr benutzen kannst.

Code: Alles auswählen

QAction *my_action = new QAction( "Destroy Core" );
my_action->setEnabled( false );
Wenn du ein ganzes Menü in deiner Menubar meinst, dann handelt es sich um ein QMenu, welches du mit

Code: Alles auswählen

my_menu->hide()
ausblenden kannst.

Verfasst: 18. März 2010 18:37
von ChornHulio
Zweiteres meinte ich. Aber genau das funktioniert nicht. Komisch...

Verfasst: 19. März 2010 08:27
von Exasperation
Jap, mein Fehler, da hab ich die Funktion nicht verstanden :oops:

QMenu::hide() lässt das sichtbare, ausgeklappte Menü verschwinden...

Code: Alles auswählen

void main_window::on_show_menu( bool show )
{
	m_my_menu->setVisible( show );
}
Mit diesem Code hab ich das getestet, da taucht einfach mitten im Widget das Popup-Menü auf und verschwindet dann bei erneutem Aufruf der Funktion...

Mir fällt da jetzt so spontan keine fertige Funktion ein, die steuert wie man ein einzelnes Menü aus einer MenuBar löscht/versteckt... :/

Verfasst: 19. März 2010 10:04
von ChornHulio
Aber trotzdem danke!