Seite 1 von 1

Mousetracking in MdiSubwindow

Verfasst: 26. Dezember 2010 20:14
von krisztian
Hallo,

meine Applikation ist so aufgebaut, dass im Main Window ein Mdi-Area liegt. Dieses beinhaltet ein Subwindow in dem ein eigenes Widget (clsIP) angezeigt wird.

Für dieses Widget würde ich mir gern die Maus Koordinaten anzeigen lassen.
Der Code sieht so aus:

Code: Alles auswählen

mdi = new QMdiArea(this);
clsIP = new imagepresenter(mdi);
sw = mdi->addSubWindow(clsIP,Qt::Dialog);

setCentralWidget(mdi);

setMouseTracking(true);
mdi->setMouseTracking(true);
	
mdi->viewport()->setMouseTracking(true);
sw->setMouseTracking(true);
clsIP->setMouseTracking(true);
Nun werden mir aber die Mauskoordinaten nur für das Mdi-Area angezeigt. Hab ich irgendwo vergessen MouseTracking zu setzen. Hab ich es irgendwo zu viel?

Würde mich über Hilfe sehr freuen.

Grüße
krisztian

Verfasst: 26. Dezember 2010 20:39
von upsala
Und wie werden die Maus-Koordinaten abgefragt?

Verfasst: 26. Dezember 2010 20:50
von krisztian
upsala hat geschrieben:Und wie werden die Maus-Koordinaten abgefragt?
Ich greife das MouseMoveEvent meines Hauptfensters ab:

Code: Alles auswählen

protected:
	virtual void mouseMoveEvent(QMouseEvent* event);

Code: Alles auswählen

void mainWindow::mouseMoveEvent(QMouseEvent* event)
{
	QString posX=QString::number(event->x());
	QString posY=QString::number(event->y());
	lblMousePosition->setText("X: " + posX + " / Y: " + posY );
}
Das Ganze wird dann in der Statusbar über obiges Label ausgegeben.

Verfasst: 26. Dezember 2010 21:10
von upsala
Dieser Code gehört in das Widget, von dem man die Maus-Koordinaten wissen will. Den Status-Text könnte man per Signal weitergeben.

Event. wäre der Event-Filter noch eine Idee.

Verfasst: 26. Dezember 2010 21:49
von krisztian
Danke (auch für die schnelle Hilfe).
Hab mir schon beinahe sowas gedacht.
Werds mal umsetzen und mir auch die EventFilter mal anschauen.

Grüße
krisztian