qt 不同分辨率显示不一致问题


//qcombox的font设置特殊,看情况调用,建议字号设置为10
#define setWidgetFontSize(w,s) if(1){QFont f=w->font();f.setPointSize(s); w->setFont(f);}
#define setWidgetFontViewSize(w,s) if(1){QFont f=w->font();f.setPointSize(s); w->view()->setFont(f);}
#define setWidgetFontLineSize(w,s) if(1){QFont f=w->font();f.setPointSize(s); w->setEditable(true); w->lineEdit()->setFont(f);}



//#include "mainwindow.h"
//#include <QApplication>

//int main(int argc, char *argv[])
//{
//    QApplication a(argc, argv);
//    //QIcon appIcon = a.style()->standardIcon(QStyle::SP_ComputerIcon);
//    QIcon appIcon = QIcon(":/img/logo.ico");
//    a.setWindowIcon(appIcon);
//    MainWindow w;
//    w.show();

//    return a.exec();
//}

#include "mainwindow.h"
#include <QApplication>
#include <QDesktopWidget>
#include <QScreen>
#include <QPaintDevice> //mingw    https://blog.csdn.net/qq_40194498/article/details/86664050

#include <QDebug>

int main(int argc, char *argv[])
{
//    QApplication a(argc, argv);
//    QFont font(QStringLiteral("新宋体"));
//    font.setPixelSize(12);                  //字体大小,等同于PointSize的9点大小
//    qApp->setFont(font);

    //经过测试,发现能用,但是不一定好用
    //需要手动设置每个widget的font-size(使用qss设置效果也不好)(qt版本5.9.3)
    if(1) {
        QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
        QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
        QGuiApplication::setAttribute(Qt::AA_UseDesktopOpenGL, true);
        QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling, false);

        QApplication a(argc, argv);
        MainWindow w;
        w.show();
        return a.exec();
    }
}
posted @ 2025-08-15 09:46  小城熊儿  阅读(15)  评论(0)    收藏  举报