Seite 1 von 1

[gelöst] QSlider im QMenu???

Verfasst: 2. Februar 2008 15:33
von daRonny
Kann ich ein QSlider in einem QMenu verwenden oder einbauen??? Wenn ja, habt ihr eine Idee?

Verfasst: 2. Februar 2008 16:01
von upsala
QWidgetAction

Verfasst: 2. Februar 2008 16:25
von daRonny
Danke für deine Hilfe, jedoch hab ich nun das Problem!

Code: Alles auswählen

	QSlider *slider = new QSlider(this);
	slider->setTickInterval(100);
    	
	QWidgetAction * widgetslider = new QWidgetAction(this);
	widgetslider->setDefaultWidget(slider);

// Ich kann nun kein addMenu hier verwenden da er eine Action will :(
	menuBar()->addAction(widgetslider);

Irgendwie weiss ich nun nicht wie ich das QWidgetAction im Menu einbauen kann!

Verfasst: 2. Februar 2008 16:54
von daRonny
Okay.. ich hab es hinbekommen.

Code: Alles auswählen

QMenu *sliderMenu = new QMenu(tr("&Slider"), this);
	QSlider *slider = new QSlider(this); 
	    	
	QWidgetAction * widgetslider = new QWidgetAction(this);
	widgetslider->setDefaultWidget(slider);

	sliderMenu->addAction(widgetslider);
	menuBar()->addMenu(sliderMenu);

Verfasst: 2. Februar 2008 16:57
von upsala
Eine QMenuBar ist kein QMenu, dein Code passt nicht zur ersten Fragestellung...

//edit: Ok, war zu langsam mit meiner Antwort...

Verfasst: 2. Februar 2008 17:20
von daRonny
sorry.. für meine falsche Ausdrucksweise... eigentlich wollte ich auch den Slider in das QMenuBar einfügen, doch habs nur in das QMenu geschafft.... :( .. eigentlich nicht das was ich wollte, doch muss damit nun klar kommen!

Verfasst: 18. August 2008 13:43
von Zonk
Da ich nun vor dem gleichen Problem stehe wie der Threadstarter:

Kann man ein QWidget nicht direkt in die Menubar einbinden?

Ich möchte neben den normalen Menüs ein Widget einbinden, das dem Benutzer den Login ermöglicht. Testweise binde ich erstmal ein QSlider ein, und wenn ich raus habe wie es funktioniert werde ich dort mein eigenes QWidget einbinden.

Ich schaffe es aber wie mein Threadstarter nur, das Widget in ein Menü einzubinden, nicht direkt in den Menubar.
Andere, in Menüs verwendete QActions lassen sich auch direkt in die Menubar einbinden, nur mit demQWidgetAction funktioniert es nicht.

Mein Betriebssystem ist Windows, ich habe nur für MAC gelesen dass dort keine Widgets in die Menubar integriert werden können..

Gibt es da eine Lösung?

Mein code sieht so aus:

Code: Alles auswählen

slider = new QSlider(this);
   slider->setTickInterval(100);
   slider->setOrientation( Qt::Horizontal );
   slider->setGeometry( 0,0, 35,15 );
       
   widgetslider = new QWidgetAction(this);
   widgetslider->setDefaultWidget(slider);

   ui.menuBar->addAction(widgetslider);
   ui.menuHelp->addAction(widgetslider);

Verfasst: 18. August 2008 18:59
von upsala
Dies ist nicht möglich. Siehe auch Qt-Code...