Seite 1 von 1

Bei Klick eines PopupMenuitems kein Effekt

Verfasst: 13. Juli 2006 11:49
von blue5teel
Hallo Leute...
Bin neu in der C++ und Qt-Programmierung
Programmiere eine Gui um meinen Opengl-kram herum. Ich benutze nicht den Designer sondern schreibe alles von Hand.
Habe folgende Zeilen in meiner Form-Klasse um ein Paar QPopupMenus einzubinden und bei Klick auf deren Items entsprechende Funktionen auszulösen:

Code: Alles auswählen

QMenuBar *menubar = new QMenuBar(this);

QPopupMenu *edit = new QPopupMenu( this );
edit->insertItem( "toggle &Apex",  this, SLOT(toggleApex()), CTRL+Key_A );

menubar->insertItem( "&Edit", edit );

Code: Alles auswählen

void Form1::toggleApex()
{
	c->apex = !c->apex;
	(static_cast<QTextEdit*>(Volumen_Fenster->child("ausgabe")))->setText("Inside !");
	
}
Habe die "toggleApex()-Methode im Headerfile auch als "public slot" deklariert.

Habe jetzt aber trotzdem keinen Effekt wenn ich auf "toggle Apex" klicke.
Muss noch an anderen Stellen irgendwelche Zeilen einfügen ?
thx...

Verfasst: 13. Juli 2006 12:41
von jaegermeister
Hi
hast du im Header "Q_OBJECT" stehen?
Wenn nicht reinschreiben, dann QMake, dann moc und Kopilieren.
Ist nur mein erster gedanken

mfg jaegermeister

Verfasst: 13. Juli 2006 14:16
von blue5teel
Leider steht das besagte schon im Header..

Aber trotzdem danke....

Hat jemand nen anderen Vorschlag ?

Verfasst: 16. Juli 2006 23:24
von Esleborn
hast du mal geschaut, ob der connect eine Warnung zurück gibt? (also bei verarbeiten der Zeile: edit->insertItem( "toggle &Apex", this, SLOT(toggleApex()), CTRL+Key_A ); )

Verfasst: 17. Juli 2006 00:07
von blue5teel
Danke Jungs...
Ich habs gelöst.....
Das Problem war einfach, dass ich im Commandprompt vom Visual Studio .Net 2003 nochmal qmake und nmake aufrufen musste.
Bis jetzt hatte das normale kompilieren im Visual Studio gereicht.

Damit kommt jetzt aber ein neues Problem auf. Es wird auf diese Commandprompt-kompilierweise meine alte Form.ui benutzt.
Die will ich aber nicht, weil ich bis Dato manuell im Form.cpp-Quellcode noch viele Sachen mehr hinzugefügt habe als in der alten Form.ui vorhanden waren. Was muss ich anders machen.

Sorry, weise nochmal darauf hin, dass ich C++ und Qt-Newbie bin.
Danke.