1

目的是在具有不同 PPI 的屏幕上运行此应用程序。

Qt 5.12

问题是,qputenv如果在QGuiApplication.

我想根据来自 QGuiApplication 的信息计算比例。

我该怎么做?以下代码引发分段错误。

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QScreen>
#include <QDebug>
int main(int argc, char *argv[])
{
    qreal abc = QGuiApplication::primaryScreen()->physicalDotsPerInch();

    qDebug() << "null " << abc;

    qputenv("QT_SCALE_FACTOR", "2");

    QGuiApplication app(argc, argv);
    
    QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                     &app, [url](QObject *obj, const QUrl &objUrl) {
        if (!obj && url == objUrl)
            QCoreApplication::exit(-1);
    }, Qt::QueuedConnection);
    engine.load(url);

    return app.exec();
}
4

0 回答 0