Qmenu Click Event

Alles rund um die Programmierung mit Qt
Antworten
CmasterG
Beiträge: 8
Registriert: 3. Mai 2013 18:39

Qmenu Click Event

Beitrag 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
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Re: Qmenu Click Event

Beitrag 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);
Antworten