如何在不使用QApplication的情况下使用QCursor :: pos()?

时间:2014-07-05 03:27:52

标签: c++ c qt qt-creator 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

1 个答案:

答案 0 :(得分:4)

QApplication对象做了很多初始化。 Qt文档中QApplication的主要责任范围之一:

  

它管理应用程序的鼠标光标处理,请参阅setOverrideCursor()

同样来自关于QCursor的Qt文档:

  

注意:可以在QGuiApplication之前创建QCursor,但是   除了作为真正的QCursor创建的占位符之外,它没有用   在QGuiApplication之后。试图使用创建的QCursor   在QGuiApplication之前会导致崩溃。

所以似乎没有QCursorQApplication就无法使用QGuiApplication