Qt für Embedded-Linux: Hide cursor auf Start

Ich bin die Entwicklung einer Qt-Anwendung auf einem linux-embedded-system.
Das system hat einen touchscreen, sondern auch ein USB-OTG-port, und es muss mit einer Maus benutzbar.

Also mein problem ist, wenn die Anwendung gestartet wird, zeigt es einen Maus-cursor in der Mitte des Bildschirms, und dann es verschwindet, wenn mein Haupt-windows paint-Ereignis Auftritt.

Wenn die Anwendung gestartet wurde, kann ich das anzeigen/verstecken der cursor, wenn eine Maus angeschlossen ist, das funktioniert gut, aber ich habe immer den cursor während der Inbetriebnahme.

Habe ich versucht:
QWSServer::setCursorVisible(false);

oder:
qApp->setOverrideCursor(QCursor(Qt::BlankCursor));

und das Ergebnis ist das gleiche, wie oben beschrieben.

Die einzige Möglichkeit, die ich gefunden, um den cursor ausblenden beim Start der Kompilierung von Qt ohne den Cursor, aber dann kann ich keinen cursor, wenn die Maus angeschlossen ist (das ist Logik...).

Also, wenn Sie eine Idee haben, wäre ich glücklich, es zu Lesen 🙂

Dank,
Sylvain

BEARBEITEN:
Okey also das ist der QWS-Server, zeigt den cursor auf Start, fand ich, dass in qt/src/gui/embedded/qwscursor_qws.cpp:

void QWSServerPrivate::initializeCursor()
{
    Q_Q(QWSServer);
//setup system cursors
#ifndef QT_NO_QWS_CURSOR
//   qt_screen->initCursor(sharedram + ramlen,true);

//default cursor
    cursor = 0;
    setCursor(QWSCursor::systemCursor(Qt::ArrowCursor));
#endif
    q->sendMouseEvent(QPoint(swidth/2, sheight/2), 0);
}

Nun, wenn ich den Kommentar der "setCursor" Anweisungen, das löst das problem, aber das ist irgendwie hässlich, zu Bearbeiten Qt-Quellcode zu tun, dass, so dass, wenn Sie habe eine bessere Lösung...

  • Sollten Sie nicht in der Lage sein zu rufen qApp->setOverrideCursor() bereits in Ihrem main.cpp Datei vor dem Aufruf qApp->exec()? Auf diese Weise sollten Sie nicht sehen Sie den cursor auf Start.
  • Das ist, was ich Tat, aber der cursor erscheint nach dem Aufruf von "app = new QApplication(qtArgc, qtArgv);". Ich denke, es wird angezeigt, wenn der QWS-Server gestartet wird.
InformationsquelleAutor Sylvain V | 2013-08-05
Schreibe einen Kommentar