Как скрыть указатель мыши при запуске?

У меня есть встроенный сенсорный экран под управлением Linux, и мое приложение — Qt / C ++.

Я запускаю приложение с функцией main, которая выглядит следующим образом:

#include <QApplication>
#include <QThread>
#include <stdlib.h>

int main(int argc, char *argv[])
{
// Create the app
QApplication app(argc, argv);

// Hide the pointer
app.setOverrideCursor( QCursor( Qt::BlankCursor ) );

// Create main window
MainWindow *window = new MainWindow;

// Set up the UI and execute the App
window->show();
app.exec();

// tidy up
delete(window);
return 0;
}

Проблема, которая у меня есть, заключается в том, что при запуске программы курсор показывает. Но как только я касаюсь экрана (приложение является полноэкранным приложением), курсор исчезает.

Я читал, что это может быть простой проблемой, т. Е. Мое приложение не в фокусе или что-то в этом роде. Как я могу убедиться, что мое приложение находится в фокусе при запуске?

Или же

Что-то я делаю не так, чтобы скрыть указатель мыши?

—РЕДАКТИРОВАТЬ—

Если я уберу строку app.setOverrideCursor( QCursor( Qt::BlankCursor ) ); тогда я сосредоточился на своем приложении. Так что эта строка почему-то заставляет мое приложение терять фокус.

Для быстрого взлома я поместил QTimer в MainWindow и установил его на 100 мс (только для того, чтобы он обрабатывался только после начала обработки события — т.е. после app.execute ()). Затем я подключил событие таймера к функции слота, которую я вызываю «getFocusOnMeNow ()», в которой я имею:

this->activateWindow();
this->setFocus();

И это работает.

Так что теперь я хотел бы привести это в порядок. Какую функцию / слот я могу вызвать AFTER app.execute () в MainWindow, чтобы получить фокус? Я не вижу слот MainWindow :: start (), который я могу перегрузить …?

2

Решение

пытаться

app.setCursorVisible(false);

может это поможет тебе.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]