• 3254阅读
  • 4回复

[提问]QUICK 内width,height是什么单位? [复制链接]

上一主题 下一主题
离线lovexin109
 

只看楼主 倒序阅读 楼主  发表于: 2017-09-25
  1. ApplicationWindow {
  2.     id:mainwindow
  3.     visible: true
  4.     width: 1080
  5.     height: 1740
  6.     title: qsTr("Hello World")
  7.     Rectangle {
  8.         id: mainrec
  9.         anchors.fill: parent
  10.             Label {
  11.                 id:label1
  12.                 text:parent.width
  13.                 anchors.centerIn: parent
  14.             }
  15.             Label{
  16.                 id:label2
  17.                 text:parent.height
  18.                 anchors.top: label1.bottom
  19.                 anchors.verticalCenter: parent.verticalCenter
  20.             }
  21.         }
  22. }
代码如上:
手机1080X1920,运行结果是360X616,(去掉手机最上面那一栏高度刚好是1848)基本上是3的系数,想问下width和height的单位是什么,为什么会得出360和616?难道是dp??
离线never_forget

只看该作者 1楼 发表于: 2017-09-26
应该是 像素 吧
离线lovexin109

只看该作者 2楼 发表于: 2017-09-26
回 never_forget 的帖子
never_forget:应该是 像素 吧 (2017-09-26 08:31)

但是在手机上运行,label1,label2的text运行显示360和616,这样可能就不是像素吧


离线never_forget

只看该作者 3楼 发表于: 2017-09-27
管他是啥,能用

就行
在线lemonzll

只看该作者 4楼 发表于: 2017-09-27
你main函数开头是不是加的有这句,QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);如果启用的有这个,quick里面的像素就相当于是dp,如果没有启用,就是按实际的像素。这是Qt 5.6开始才引入的。启用以后尺寸信息都是实际的大小除以或乘以屏幕的像素比,屏幕的像素比可以用qApp->devicePixelRatio()查看下,你手机应该是3,比如定义一个150x150的矩形,实际上是450x450了
快速回复
限100 字节
 
上一个 下一个