
我正在开发应在移动和桌面平台上运行的应用程序.我发现控件的大小在不同的屏幕上会有所不同:在高密度屏幕中,控件太小而在低密度屏幕中,则很大.
我可以计算每个屏幕的比例因子(即使用Android的与密度无关的像素),并用它来定义dp中的项目大小,边距等:
applicationwindow { ... property real dp: Screen.pixelDensity * 10 * 2.54 / 160 Item { wIDth: 50*dp height: 50*dp ... Label { Font.pixelSize: 16*dp ... } }}它运作良好,但似乎Qt Quick Controls 2中标准控件的大小以像素为单位定义,因此它们无法缩放.我看到的唯一方法是使用dp而不是像素重新定义Qt Quick Controls 2中的所有控件.
因此,我正在寻找一种在不重新定义所有标准控件的情况下扩展标准控件的方法.
UPD1.
我已经尝试了“高DPI支持”,它可以使情况更好,但仍然存在一些问题.
以下是在应用High-DPI支持之前和之后来自不同设备的主屏幕(see paramter description here)的一些参数:
// samsung tab t-280 without high dpi supportdevicePixelRatio 1geometry QRect(0,0 800x1280)logicalDotsPerInch 95.85physicalDotsPerInch 216.458physicalSize QSizef(94, 150) (7')// samsung tab t-280 with high dpi supportdevicePixelRatio 1.33125geometry QRect(0,0 601x962)logicalDotsPerInch 72physicalDotsPerInch 162.648physicalSize QSizef(94, 150) (7')// xiaomi redmi 2 without high dpi supportdevicePixelRatio 1geometry QRect(0,0 720x1280)logicalDotsPerInch 144physicalDotsPerInch 315.48physicalSize QSizef(58, 103) (4.6')// xiaomi redmi 2 with high dpi supportdevicePixelRatio 2geometry QRect(0,0 360x640)logicalDotsPerInch 72physicalDotsPerInch 157.74physicalSize QSizef(58, 103) (4.6')// macbook pro retina 13' without high dpi supportdevicePixelRatio 2geometry QRect(0,0 1280x800)logicalDotsPerInch 72physicalDotsPerInch 113.5physicalSize QSizef(286.449, 179.031) (13')// macbook pro retina 13' with high dpi supportdevicePixelRatio 2geometry QRect(0,0 1280x800)logicalDotsPerInch 72physicalDotsPerInch 113.5physicalSize QSizef(286.449, 179.031) (13')// generic 20' display without high dpi supportdevicePixelRatio 1geometry QRect(0,0 1280x1024)logicalDotsPerInch 72physicalDotsPerInch 72physicalSize QSizef(451.556, 361.244) (22.6')// generic 20' display with high dpi supportdevicePixelRatio 1geometry QRect(0,0 1280x1024)logicalDotsPerInch 72physicalDotsPerInch 72physicalSize QSizef(451.556, 361.244) (22.6')// asus Zenbook 13' without high dpi supportdevicePixelRatio 1geometry QRect(0,0 1366x768)logicalDotsPerInch 96physicalDotsPerInch 71.9833physicalSize QSizef(482, 271) (21.6'!)// asus Zenbook 13' with high dpi supportdevicePixelRatio 1geometry QRect(0,0 1366x768)logicalDotsPerInch 96physicalDotsPerInch 71.9833physicalSize QSizef(482, 271) (21.6'!)对于某些Hight-DPI显示器(三星平板电脑和小米手机)来说,情况似乎会更好.申请High-DPI支持后,两个设备的DPI均接近160.
但是Retina显示屏和低密度显示屏的DPI不会改变,并且屏幕上的项目看起来比应该的要大.因此,它只能解决原始问题的一半.也许有人知道如何在运行时为所有Qt应用程序手动设置比例因子?
解决方法:
我遇到了同样的问题,发现jpnurmi的答案最有帮助:添加
qputenv("QT_SCALE_FACTOR", "3"); 在创建应用程序实例之前在main()中.
对于我的Retina显示器,系数0.75对我来说效果很好,因为这些显示器实际上太大了.
以上是内存溢出为你收集整理的android-Qt快速控件2缩放全部内容,希望文章能够帮你解决android-Qt快速控件2缩放所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)