QGuiApplication没有screenAt!!
时间: 2024-04-24 16:23:25 浏览: 96
非常抱歉,我之前的回答仍然有误。在 Qt 中,确实没有 `QGuiApplication` 类的 `screenAt()` 方法。请使用 `QApplication` 类的 `desktop()` 方法来获取当前屏幕的信息,并结合鼠标位置来确定鼠标所在屏幕。
以下是修改后的示例代码:
```cpp
#include <QApplication>
#include <QCursor>
#include <QDesktopWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 获取当前鼠标的位置
QPoint mousePos = QCursor::pos();
// 获取当前屏幕的信息
QDesktopWidget *desktop = QApplication::desktop();
int screenIndex = desktop->screenNumber(mousePos);
QRect screenRect = desktop->screenGeometry(screenIndex);
// 输出鼠标所在屏幕的矩形区域信息
qDebug() << "Screen Geometry:" << screenRect;
return app.exec();
}
```
在上述代码中,我们使用 `QCursor::pos()` 获取了当前鼠标的位置,并将结果存储在 `mousePos` 变量中。然后,使用 `QApplication::desktop()` 获取了当前屏幕对象的指针,并使用 `screenNumber()` 方法根据鼠标位置获取鼠标所在屏幕的索引。最后,使用 `screenGeometry()` 方法获取了该屏幕的矩形区域,并将结果存储在 `screenRect` 变量中。
请注意,代码中使用了 `QDesktopWidget` 类而不是 `QGuiApplication`,因为 `QDesktopWidget` 提供了更多关于屏幕的信息和操作。