美文网首页my-QT专栏
QT5根据分辨率和控件位置

QT5根据分辨率和控件位置

作者: c之气三段 | 来源:发表于2021-07-03 21:50 被阅读0次

    根据分辨率保持横纵比初始化窗口大小

    //缩小倍数   
       float  minification=0.2f;
    //获取主屏幕分辨率
       QScreen *screen=QGuiApplication::primaryScreen();
        int screenWith=screen->availableGeometry().width();
        int screenHeight=screen->availableGeometry().height();
    //根据横纵比初始化窗口大小
        int defaultWith=screenWith-screenWith*minification;
        int defaultHeight=defaultWith*screenHeight/screenWith;
        this->resize(defaultWith,defaultHeight);
    

    只需修改coefficient系数即可。如0.5缩小一倍,0.1缩小1/10倍

    缩小0.2被效果

    image.png

    这样做的好处是无需管屏幕到底多大,设置的窗口大小也不会因为其他设备分辨率小而显示异常。

    获取子控件在全局的位置

    ui->widget_graph->mapToGlobal(ui->widget_graph->pos());
    

    鼠标相对控件的距离

    ui->widget_graph->mapFromGlobal(QCursor::pos());
    

    控件相对于父控件的距离

    ui->widget_graph->mapFromGlobal(this->pos());
    

    相关文章

      网友评论

        本文标题:QT5根据分辨率和控件位置

        本文链接:https://www.haomeiwen.com/subject/fiypultx.html