Seite 1 von 1

Qmenu Click Event

Verfasst: 11. September 2013 22:01
von CmasterG
Hallo!
Ich habe gerade eine Menubar bearbeitet und wollte diese jetzt um "Buttons" ergänzen. Wenn man also auf ein qmenu draufclickt soll sich ein neues Widget öffnen, wo man Einstellungen vornehmen kann und schließen soll es sich wieder wenn man wieder draufclickt.
Also ich hab eine Menüleiste und die hat am anfang mal File stehen. Das funktioniert ganz normal: Wenn man mit der Maus drüber geht öffnet sich alles darunter.
Jetzt hab ich daneben aber einen neuen Eintrag gemacht "Settings" und dem will ich jetzt aber keine qactions unterordnen sondern ich will hier einfach wenn man auf Settings clickt ein von mir erstelltes Widget öffnen. Also in Prinzip das was eine Toolbar machen würde. Da ich aber insgesamt nur 4 Einträge brauche würde ich das gerne in eine Leiste tun. Weiß jemand vl wie ich das machen kann?
Also wie könnte ich hier ein click Event machen?
Ich habe mir gedacht dass ich aboutToshow() und aboutTohide() missbrauche indem ich halt eine qAction unterordne und wenn eines der beiden Events auftritt setz ich die Action einfach auf hide sodass man sie nicht sieht und öffne / schließe das Fenster. Gut das Funktioniert wenn ich mit der Maus drüberfahre aber nicht wenn ich auf Settings clicke und eigentlich soll es auch nur mit clicken passieren da ich will dass das Fenster offen / geschlossen bleibt wenn ich nur mit der Maus drüber fahre.

Lg

Re: Qmenu Click Event

Verfasst: 13. September 2013 10:15
von Hulk2442
Hi
Wenn du dir das Menu Beispiel anschaust findest du dort die komplette Vorlage für dein Vorhaben
http://qt-project.org/doc/qt-5.0/qtwidg ... menus.html


Genauer gesagt - du bist nicht gezwungen deine "Actions" in Menus zu verschachteln sondern kannst diese direkt in die menuBar einhängen.
Somit kannst du aus:

Code: Alles auswählen

	helpMenu = menuBar()->addMenu(tr("&Help"));
	helpMenu->addAction(aboutAct);
	helpMenu->addAction(aboutQtAct);
folgendes umschreiben

Code: Alles auswählen

	menuBar()->addAction(aboutAct);
	menuBar()->addAction(aboutQtAct);