Kontextmenü für einzelnes Widget (QFrame)?

Alles rund um die Programmierung mit Qt
Antworten
hulio
Beiträge: 12
Registriert: 12. Mai 2005 12:24

Kontextmenü für einzelnes Widget (QFrame)?

Beitrag von hulio »

Kann ich ein Kontextmemü für ein einzelnes Widget (z. B. QFrame) erstellen. Alle meine Versuche schlugen bisher fehl.

Hulio :?:
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Code: Alles auswählen

QWhatsThis::add(pWidget,tr("<b>Überschrift</b><p>Dies ist eine Kontexthilfe</p>"))
Gruss Arne
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

Kontextmenu ist was anderes als Kontexthilfe...
So wird's gemacht:

Code: Alles auswählen

QPopupMenu * contextMenu = new QPopupMenu( this );
QLabel *caption = new QLabel( "<font color=darkblue><u><b>" "Context Menu</b></u></font>", this );
caption->setAlignment( Qt::AlignCenter );
contextMenu->insertItem( caption );
contextMenu->insertItem( "&Save", this, SLOT(save()), CTRL+Key_S );
contextMenu->exec( QCursor::pos() );
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

und das Ganze natürlich in:
void QWidget::contextMenuEvent ( QContextMenuEvent * e ), die du überladen must
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Kontextmenu ist was anderes als Kontexthilfe ...
hab' mich glatt verlesen :oops: ... das war etwas zu früh heute morgen. Nächstens trinke ich erst meinem Kaffee :-)

Gruss Arne
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

Ich versuche auch gerade ein ContextMenu zu erstellen, allerdings bringt er mir da folgende Meldung:

Code: Alles auswählen

error C2027: Verwendung des undefinierten Typs "QPopupMenu"
Weiß jemand, woran das liegt?

Hier mein Code:

Code: Alles auswählen

void main_window::contextMenuEvent( QContextMenuEvent *event)
{
	QPopupMenu* context_menu = new QPopupMenu( this );

	context_menu->addAction( m_reset_view_action );
	context_menu->addTo( m_gl_widget );

	context_menu->exec(event->globalPos());
}
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

QPopupMenu ist Qt3 :/
Wenn du die Qt3Support-Libs installiert hast, kannst du Q3PopupMenu verwenden.

Ansonsten eben halt so ein normales QMenu :)
Das hat sogar eine Methode "popup()"!

Grüße
Franz
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

Achso, danke :D Das erklärt warum ich es nicht in der Doku von 4.4.3 gefunden hab ^^

Ja das mit dem QMenu hab ich auch ausprobiert, sieht auch gut aus :)
Antworten