欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

26-Qt在有多个屏幕的电脑上,在一个屏幕中居中显示软件窗口

程序员文章站 2022-05-02 09:36:37
...

参考以下代码即可实现软件在多屏幕电脑的其中一个屏幕的中间显示。支持跨平台。

    MainWindow w;
    
    //获取当前软件所在屏幕的序号
    int currentScreenIndex = a.desktop()->screenNumber(&w);
    
    //这个获取指定屏幕获取其屏幕分辨率的方法 警告deprecated
    //QRect screen_rect = a.desktop()->screenGeometry(currentScreen);
    
    //应该使用这个方法获取指定屏幕的 分辨率
    QList<QScreen *> screen_list = QGuiApplication::screens();
    
    if(currentScreenIndex < screen_list.count()) {
        QRect screen_rect = screen_list[currentScreenIndex]->geometry();
        
        //获取到软件窗口所在屏幕的 宽 高 尺寸
        int screen_width = screen_rect.width();
        int screen_height = screen_rect.height() - 54;//减去 任务栏高度
        
        //移动窗口到 居中
        w.move((screen_width - w.width()) / 2,  (screen_height - w.height()) / 2);
    }
    w.show();