Seite 1 von 1

[Gelöst]QMenu and QAction under WinCE (QT 4.4 Beta)

Verfasst: 1. April 2008 12:39
von Tesgane
Hallo allerseits.

Ich möchte ein Popup Menu öffnen, welches bei einer Auswahl ein Signal verschickt.

hier der Code snippet

Code: Alles auswählen


============================================

void ImageBox::mousePressEvent(QMouseEvent *e)
{
 //MainWindow must adjust selection... 
 //Create menu 
 //Execute menu at current mouse position
	if (e->button() == Qt::LeftButton){		 
		mpMenu = new QMenu("menu", this);
		
		p_Connect_action_1 = new QAction("Sentry01",this);
		p_Connect_action_2= new QAction("Sentry03",this);
		p_Connect_action_3= new QAction("Sentry04",this);

	  connect(p_Connect_action_1, SIGNAL(triggered()), this, SLOT(Connect("Sentry01"))); 
	  connect(p_Connect_action_2, SIGNAL(triggered()), this, SLOT(Connect("Sentry03"))); 
	  connect(p_Connect_action_3, SIGNAL(triggered()), this, SLOT(Connect("Sentry04"))); 

		mpMenu->addAction(p_Connect_action_1);
		mpMenu->addAction(p_Connect_action_2);
		mpMenu->addAction(p_Connect_action_3);

		mpMenu ->exec(QCursor::pos());
		delete mpMenu ;
		gParent->repaint(); 
	}
 emit Clicked(mX,mY);
}

void ImageBox::Connect(char* serverName)
{
  //Hardcoded for Testing
  strcpy(mServerName,serverName);
  strcpy(mServerPort,"14334");

  if (receiver.isRunning())
	  receiver.terminate();

  receiver.wait();
  

  receiver.setServer(mServerName, mServerPort);
  //emit doConnect(mServerName, mServerPort);
  receiver.start();

  mpBox->hide();
  update();
  mpBox->show();

  AdjustSize();

}

====================================
Das Problem ist: Das Menu geht auf, ich treffe eine Auswahl, jedoch wird der Slot Connect nicht aufgerufen. Ich verwende QT 4.4 Beta und WindowsCE static lib
[/b]

Verfasst: 1. April 2008 13:23
von Christian81
Zum x-ten Mal - ein Slot kann man keine eigene Parameter übergeben - ein Slot kann nur so viele (oder weniger) Parameter aufnehmen wie das Signal besitzt. Das steht aber alles in der Doku zu Signals und Slots -> durchlesen!

/edit: Ausserdem wird Dir das während der Laufzeit in der Console bzw. Debug-Fenster ausgegeben dass es nicht funktioniert.

Verfasst: 1. April 2008 13:53
von macman
Christian81 hat geschrieben:Zum x-ten Mal
Ist sein erstes Posting, da kannst Du nicht vom x-ten Mal schreiben :-)
Aber hast schon Recht, ist ein typischer Fall von Forensuche nicht genutzt und Doku nicht gelesen/verstanden. Warum steht das eigentlich noch nicht in den FAQ?

Verfasst: 1. April 2008 13:55
von Christian81
macman hat geschrieben:Warum steht das eigentlich noch nicht in den FAQ?
Weil es noch niemand geschrieben hat und ich (wie man merkt) nicht wirklich zum Schreiben von Erklärungen geeignet bin :-D

Verfasst: 1. April 2008 14:27
von Tesgane
Geb zu. Blöder Fehler. Ausserdem sollte man nochmal qmake aufrufen, nachdem man neue Slots definiert hat. Dann klappts auch.
Christian81 hat geschrieben:
macman hat geschrieben:Warum steht das eigentlich noch nicht in den FAQ?
Weil es noch niemand geschrieben hat und ich (wie man merkt) nicht wirklich zum Schreiben von Erklärungen geeignet bin :-D
Glaubst Du, dass einer wie ich, der solche Postings schreibt die FAQ liest??? ;-)

Verfasst: 1. April 2008 14:36
von macman
Tesgane hat geschrieben:Glaubst Du, dass einer wie ich, der solche Postings schreibt die FAQ liest??? ;-)
Egal, wenn so was in den FAQ steht, dann werden solche Fragen nicht mehr beantwortet.

Verfasst: 1. April 2008 14:39
von Tesgane
macman hat geschrieben:
Tesgane hat geschrieben:Glaubst Du, dass einer wie ich, der solche Postings schreibt die FAQ liest??? ;-)
Egal, wenn so was in den FAQ steht, dann werden solche Fragen nicht mehr beantwortet.
Außer von Leuten beantwortet, die die FAQ auch nicht gelesen;-) Nun kann man den Thread aber schließen. Problem solved.

Verfasst: 1. April 2008 14:52
von macman
Tesgane hat geschrieben:Nun kann man den Thread aber schließen. Problem solved.
Das musst Du schon selber machen, wir können es nicht.