qt 获取一个屏幕的宽高

在Qt中,获取屏幕的宽度和高度可以使用QScreen类,该类提供了关于屏幕的信息,包括其尺寸。以下是如何使用QScreen来获取主屏幕的宽度和高度的示例代码:

#include <QApplication>
#include <QScreen>
#include <QGuiApplication>
#include <QDebug>

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

    // 获取主屏幕
    QScreen *screen = QGuiApplication::primaryScreen();

    // 获取屏幕的尺寸
    QSize screenSize = screen->size();
    int screenWidth = screenSize.width();
    int screenHeight = screenSize.height();

    // 输出屏幕的宽度和高度
    qDebug() << "Screen Width:" << screenWidth;
    qDebug() << "Screen Height:" << screenHeight;

    return app.exec();
}

代码说明

  • QGuiApplication::primaryScreen():
    • 返回指向主屏幕的指针。在多屏幕设置中,这通常是用户的主显示器。
  • QScreen::size():
    • 返回一个QSize对象,其中包含屏幕的宽度和高度。
  • QSize::width() 和 QSize::height():
    • 分别用于获取QSize对象的宽度和高度。

注意事项

  • 如果你的应用支持多屏幕设置,你可能需要遍历所有可用的屏幕,这可以通过QGuiApplication::screens()来获取一个包含所有屏幕的列表。

  • 屏幕的分辨率和可用空间可能因系统任务栏、窗口管理器装饰(如边框和标题栏)而有所不同。如果需要获取应用程序窗口实际可用的空间,可能需要考虑这些因素。

通过上述方法,你可以轻松获取当前屏幕的宽度和高度,并在你的Qt应用中使用这些信息来调整布局或窗口大小。

Qt中,获取屏幕度和度的方法会因Qt版本有所不同。 对于较新的Qt版本,推荐使用`QScreen`类,它提供了更现代且功能更全面的屏幕管理接口。以下是获取屏幕度和度的具体方式: - **获取当前屏幕的尺寸、度和度**: ```cpp #include <QGuiApplication> #include <QCursor> #include <QScreen> #include <QRect> // 获取当前屏幕的尺寸 QRect currentScreenGeometry = QGuiApplication::screenAt(QCursor().pos())->geometry(); // 获取当前屏幕 int currentScreenWidth = QGuiApplication::screenAt(QCursor().pos())->geometry().width(); // 获取当前屏幕 int currentScreenHeight = QGuiApplication::screenAt(QCursor().pos())->geometry().height(); ``` - **获取屏幕度和度**: ```cpp #include <QGuiApplication> #include <QScreen> #include <QRect> // 获取屏幕 QScreen* primaryScreen = QGuiApplication::primaryScreen(); // 获取屏幕的尺寸 QRect primaryScreenGeometry = primaryScreen->geometry(); // 获取屏幕 int primaryScreenWidth = primaryScreenGeometry.width(); // 获取屏幕 int primaryScreenHeight = primaryScreenGeometry.height(); ``` - **多屏幕情况下获取各个屏幕度和度**: ```cpp #include <QGuiApplication> #include <QScreen> #include <QList> #include <QRect> // 获取所有屏幕 QList<QScreen *> screenList = QGuiApplication::screens(); QList<QRect> rectList; for(int i = 0; i < screenList.size(); i++){ rectList.append(screenList.at(i)->geometry()); int screenWidth = rectList.at(i).width(); int screenHeight = rectList.at(i).height(); } ``` 需要注意的是,`QDesktopWidget`类在Qt5开始官方就不建议使用,在Qt6中已被废弃,应使用`QScreen`类来获取屏幕信息 [^1][^2][^3][^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值