• Qt 高分屏适配和QSS单位


    启用高分屏适配

    1 #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
    2     QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    3 #endif

     当QApplication设置上述属性后,qt会自动根据当前系统缩放比例进行调整。
    但是该属性调整的只有px指定的值。

    例如:

    1 #labelPt
    2 {
    3 font-size:9pt;
    4 }
    1 #labelPx
    2 {
    3 font-size:12px;
    4 }

    在上述两种qss代码中,labelPt指定的字体大小是pt而labelPx指定的字体大小是px。当系统缩放设置是100%的时候这两种表述并没有什么区别。但是当系统缩放设置改变之后,labelPx的大小会随之发生改变,而labelPt则不会。这是因为px代表的是像素数,而pt代表的是点大小,然而系统缩放设置所针对的就是px像素值。即当系统缩放设置为200%的时候,系统会直接使用4个像素点来显示一个像素。而pt所表示的则是物理尺寸,通过以下方法换算。

    1pt=0.376毫米=1.07英美点=0.0148英尺=0.1776英寸。

    即在一般的显示器上,所有显示器pt所指代的大小都是固定的,这各值是可以用尺子量出来的。
    另外一个意思就是pt本身就是随着显示器dpi进行缩放的。而px不是。

    实际应用
    综上所述。在实际写程序的过程中,单位一定要统一。如果使用pt就所有的尺寸都使用pt表示。如果使用px就统一使用px。
    这样具有更好的兼容性。

    补充:qss单位
      pt:上面讲过,点大小。具体尺寸会随屏幕dpi进行改变。
      px:像素大小,会随系统缩放设置进行改变。
      em:字符M所对应的宽度,会随控件font-size和font-family属性改变。基本上是一个汉字的宽度
      ex:字符X的高度,同样会随控件fong-size和font-family属性改变。
      %:百分比,QT支持,但是一直没搞明白它是相对于谁的百分比。也一直没用过。
    实战
    提供一下qss代码,各位可以试试效果。

     1 QLabel
     2 {
     3 font-size:9pt;            //字体大小9个点
     4 padding-left:1em;        //左padding 1个M字符的宽度,
     5 padding-right:1em;
     6 padding-top:0.4em;        //距离顶部0.4个汉字的宽度
     7 padding-bottom:0.4em;
     8 }
     9 /***********************************/
    10 QLabel
    11 {
    12 font-size:12px;
    13 padding-left:6px;
    14 padding-right:6px;
    15 padding-top:3px;
    16 padding-botton:3px;
    17 }
    18 /***********************************/
    19 QLabel
    20 {
    21 font-size:12px;
    22 padding-left:1em;
    23 padding-right:1em;
    24 padding-top:0.4ex;
    25 padding-bottom:0.4ex;
    26 }
  • 相关阅读:
    全栈项目|小书架|服务器端-NodeJS+Koa2实现首页图书列表接口
    全栈项目|小书架|微信小程序-首页水平轮播实现
    全栈项目|小书架|微信小程序-登录及token鉴权
    全栈项目|小书架|微信小程序-项目结构设计分包
    Python学习第123天(Django回头看:模板控制语句、filter、simple_tag)
    Python学习第122天(Django回头看:视图函数、redirect、模板变量、过滤器)
    Python学习第121天(Django2的include使用)
    Python学习第120天(Django1和2之间的区别)
    Python学习第119天(练习)
    Python学习第119天(暂停)
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14821801.html
Copyright © 2020-2023  润新知