2

我正在 Qt Creator 中编写一个项目,如果我写

QPoint cursorPos=QCursor::pos();

然后 cursorPos={-2147483648,-2147483648} 这显然是错误的。但是,如果我写

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

那么 cursorPos 是正确的鼠标位置。有没有什么方法可以让 QCursor::pos() 在没有 QApplication 的情况下工作?谢谢。:D

4

1 回答 1

4

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

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

同样来自 Qt 文档QCursor

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

所以似乎QCursor没有QApplicationor是无法使用的QGuiApplication

于 2014-07-05T04:11:52.143 回答