qt main 函数

qt main函数的一些注意点

#include "mainwindow.h"
#include <QApplication>
#include <QDesktopWidget>
#include <QScreen>

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

    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);//qt5.6以后支持
    //QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);//qt6支持

    QApplication a(argc, argv);

    // 设置应用程序图标(窗口图标)
    //QIcon appIcon = QIcon(":/img/logo.ico");
    //QIcon appIcon = a.style()->standardIcon(QStyle::SP_ComputerIcon);
    //a.setWindowIcon(appIcon);//建议在main.c中统一设置icon,避免不同平台的差异
    //QPixmap pixmap = appIcon.pixmap(150, 150);// 获取最大可用尺寸// 保存为ICO文件
    //pixmap.save("logo.ico", "ICO");

    const float DEFAULT_DPI = 96.0;
    QDesktopWidget *mydesk = QApplication::desktop();
    int dpiX = mydesk->logicalDpiX();
    float fontSize = dpiX / DEFAULT_DPI;

    QFont font = a.font();
    //font.setPointSize(font.pointSize()*fontSize);
    font.setPointSize(9);
    a.setFont(font);
    MainWindow r;
    int currentScreenIndex = a.desktop()->screenNumber(&r);
    QList<QScreen *> screen_list = QGuiApplication::screens();
    if(currentScreenIndex < screen_list.count()) {
        QScreen *tem = screen_list[currentScreenIndex];
        QRect screen_rect  = tem->geometry();

        //获取到软件窗口所在屏幕的 宽 高 尺寸
        int screen_width = screen_rect.width();
        int screen_height = screen_rect.height();//减去 任务栏高度

        //移动窗口到 居中
        r.move((screen_width - r.width()) / 2,  (screen_height - r.height()) * 0.2);
        //r.move((desktop->width() - r.width())/ 2, (desktop->height() - r.height()) *0.1);
    }

    r.show();

    return a.exec();
}

posted @ 2025-06-05 18:23  小城熊儿  阅读(16)  评论(0)    收藏  举报