[Interest] How to read screen information from QGuiApplication to put in qputenv environment variable?

Tor Arne Vestbø Tor.arne.Vestbo at qt.io
Mon Feb 15 13:24:31 CET 2021

Can I ask, why do you want to set QT_SCALE_FACTOR at all?

Tor Arne

On 15 Feb 2021, at 12:50, Anisha kaul <anisha.kaul.1983 at gmail.com<mailto:anisha.kaul.1983 at gmail.com>> wrote:


The problem is that qputenv does not work if written after the initialization of QGuiApplication.

I want to calculate scale according to the information from QGuiApplication.

How do I do it? The following code throws a segmentation fault.



#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)
    }, Qt::QueuedConnection);

    return app.exec();

Interest mailing list
Interest at qt-project.org<mailto:Interest at qt-project.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210215/fe755a98/attachment.html>

More information about the Interest mailing list