QMenu verstecken

Alles rund um die Programmierung mit Qt
Antworten
ChornHulio
Beiträge: 62
Registriert: 7. November 2008 11:02

QMenu verstecken

Beitrag von ChornHulio »

Hallo

kann ich ein Menu nicht verstecken?

ui->menuSettings->setVisible(false);

funktioniert nicht. Warum?

Danke für eure Antworten!
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Hallo,

keine Ahnung ob Du das meinst aber probier mal:

Code: Alles auswählen

setWindowFlags( Qt::WindowSystemMenuHint );
Gruß
ChornHulio
Beiträge: 62
Registriert: 7. November 2008 11:02

Beitrag 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.
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Hallo,

ja dieser Befehl versteckt alles.

Falls ich noch was finde schreib ich Dir wieder :)
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag 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.
ChornHulio
Beiträge: 62
Registriert: 7. November 2008 11:02

Beitrag von ChornHulio »

Zweiteres meinte ich. Aber genau das funktioniert nicht. Komisch...
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag 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... :/
ChornHulio
Beiträge: 62
Registriert: 7. November 2008 11:02

Beitrag von ChornHulio »

Aber trotzdem danke!
Antworten