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

Alles rund um die Programmierung mit Qt
Antworten
Tesgane
Beiträge: 3
Registriert: 1. April 2008 12:27

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

Beitrag 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]
Zuletzt geändert von Tesgane am 1. April 2008 15:07, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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?
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Tesgane
Beiträge: 3
Registriert: 1. April 2008 12:27

Beitrag 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??? ;-)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Tesgane
Beiträge: 3
Registriert: 1. April 2008 12:27

Beitrag 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.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Antworten