Как использовать QCursor::pos() без использования QApplication?

Я пишу проект в Qt Creator, и если я напишу

QPoint cursorPos=QCursor::pos();

тогда cursorPos={-2147483648,-2147483648}, что явно неверно. Однако, если я напишу

QApplication *application=new QApplication(argc,argv);
QPoint cursorPos=QCursor::pos();

тогда cursorPos является правильной позицией мыши. Есть ли способ заставить QCursor::pos() работать без QApplication? Спасибо. :D


person user3551745    schedule 05.07.2014    source источник


Ответы (1)


QApplication объект так много инициализирует. Одна из основных зон ответственности QApplication в документации Qt:

Он управляет обработкой курсора мыши в приложении, см. setOverrideCursor().

Также из документации Qt о QCursor :

Примечание. Можно создать QCursor перед QGuiApplication, но это бесполезно, кроме как в качестве заполнителя для реального QCursor, созданного после QGuiApplication. Попытка использовать QCursor, созданный до QGuiApplication, приведет к сбою.

Таким образом, кажется, что невозможно использовать QCursor без QApplication или QGuiApplication.

person Nejat    schedule 05.07.2014