Mouse von Programm fern halten

Alles rund um die Programmierung mit Qt
Antworten
Label
Beiträge: 55
Registriert: 15. August 2008 10:03

Mouse von Programm fern halten

Beitrag von Label »

Mahlzeit!

Ich habe ein kleines Problem:
Ich habe ein Programm geschrieben, welches ein paar Displays anzeigt (mit Zeigern die sich drehen usw. :) ). Dieses Programm startet sich auf einem 2. Monitor. Nun zu meinem Problem. Ich möchte das sich der Mauszeiger nicht über mein Programm bewegen kann.
Ich hatte mir erst überlegt ein mouseMoveEvent für jedes Widget zu implementieren, aber da es mehrere Widgets gibt sich teilweise überschneiden usw. ist mir das zu umständlich ... oder besser gesagt: ich hab es ausprobiert, es hat aber nicht richtig funktioniert.
Also jetzt meine Frage:
Weis jemand eine bessere Lösung, um den Mauszeiger von meiner Applikation fern zu halten oder sogar vom ganzen 2. Monitor?

danke für kommende Vorschläge :wink:
Ginsengelf
Beiträge: 79
Registriert: 2. Mai 2007 10:21

Beitrag von Ginsengelf »

Moin, du könntest einen Eventfilter (siehe QObject::installEventFilter ( QObject * filterObj)) für jede Widgetinstanz installieren, der den Mausevent bearbeitet und ggf. die Maus an den Rand der Anwendung setzt.

Ginsengelf
Label
Beiträge: 55
Registriert: 15. August 2008 10:03

Beitrag von Label »

Danek für die schnelle Antwort!
Ich werde es gleich mal ausprobieren :)
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Beitrag von Hulk2442 »

DU könntest den Zeiger verstecken!
Zwar ist er eigentlich noch da, doch wenn du ihn über das Programm bewegst, wird er nicht angezeigt!

Nachteil: der Zeiger verschwindet komplett und der Benutzer findet ihn nicht wenn sich dieser gerade auf denselben Koordinaten wie das Programmfenster befindet, deshalb nebenbei vielleicht noch beim MouseMoveEvent eine festgelegte Position außerhalb des Programms festlegen.

Bsp.:

Code: Alles auswählen

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	qApp->setOverrideCursor( QCursor( Qt::BlankCursor ) ); 
	
	//Beim bewegen des Zeigers
	//QCursor::setPos(650, 0);	//neue curser position
	
	QWidget w;
	w.show();
	
	return app.exec();
}
Label
Beiträge: 55
Registriert: 15. August 2008 10:03

Beitrag von Label »

Danke!
Ich hab es jetzt erstmal so gelöst wie du vorgeschlagen hast. Wie du schon gesagt hast, ist es nicht die allerbeste Lösung aber für den Anfang reicht es.
Antworten