qt quick controls,qt 移动控件的位置

  qt quick controls,qt 移动控件的位置

  参考文档:https://doc . Qt . io/Qt-6/Qt quick-location-topic . html

  几种定位方式绝对定位(通过设置x,y的值)相对定位(在夸脱快速中也叫锚定位)定位器布局绝对定位请看代码

  导入数量快速

  窗口{

  宽度:640

  身高:480

  可见:真

  标题:qsTr("你好世界")

  矩形

  宽度:200

  身高:200

  x: 20

  y: 30

  颜色:绿色

  矩形

  x: 20

  y: 5

  宽度:150

  身高:100

  颜色:"灰色"

  }

  }

  }运行效果

  使用x,y定位时,它是相对于父元素的。

  也可以通过属性绑定的功能,实现动态布局:

  导入数量快速

  导入QtQuick .控制

  窗口{

  宽度:640

  身高:480

  可见:真

  标题:qsTr("你好世界")

  矩形

  id: rect1

  宽度:50

  身高:60

  x: 20

  y: 30

  颜色:绿色

  }

  矩形

  x:矩形1.x矩形1 .宽度5

  y:矩形1.y矩形1 .高度一

  宽度:20

  身高:20

  颜色:"灰色"

  }

  流动{

  锚。水平居中:父级。水平居中

  锚。底部:父级

  函数移动(x,y){

  rect1.x=x * 5

  rect1.y=y * 5

  }

  按钮{

  文本:" x "

  onClicked: parent.move(1,0)

  }

  按钮{

  文本:"-x "

  onClicked: parent.move(-1,0)

  }

  按钮{

  文本:" y "

  onClicked: parent.move(0,1)

  }

  按钮{

  文本:"-y "

  onClicked: parent.move(0,-1)

  }

  }

  }

  在按钮的点击事件中,我们只改变了rect1的位置,灰色小矩形的位置也会跟关变化。

  相对定位(锚定位)关于锚定位的描述:https://doc . Qt . io/Qt-6/Qt quick-positioning-anchors . html

  根据文档描述可以得到以下信息:

  每个控件都七条锚定线如下图示(还有一条叫基线跟字体相关的)

  设置格式

  #主播。锚线:itemId .锚索

  # 例如:

  矩形{ id:rect 1;}

  矩形{ id:rect 2;锚。左:矩形1。对;}留白与偏移量

  水平中心偏移setverticalCenterOffset基线偏移

  第条锚定线都有对应的偏移量

  #主播。锚线边距/偏移量

  矩形{ id:rect 1;}

  矩形{ id:rect 2;

  锚。左:矩形1。对;

  锚。左边距:5;}只能与兄弟元素和直接父对容器进行锚定#错误代码

  项目{

  id:组一

  矩形{ id:rect 1;}

  }

  项目{

  id:组2

  矩形{ id:rect 2;锚。左:矩形1。对;} //无效锚点!

  }定位器参考文档:https://doc . Qt . io/Qt-6/Qt quick-location-layouts . html

  定位器,只定位,不修改子元素的大小。

  专栏导入QtQuick

  导入QtQuick .控制

  窗口{

  宽度:640

  身高:480

  可见:真

  标题:qsTr("定位器")

  列{

  中继器{

  型号:10

  矩形

  高度:txt.height

  宽度:txt.width

  color: index % 2==0?天蓝色:灰色

  文本{

  id: txt

  文本:qsTr(文本索引)

  font.pointSize: 24

  color: index % 2==0?红色:绿色

  }

  }

  }

  }

  }

  行导入数量快速

  导入QtQuick .控制

  窗口{

  宽度:640

  身高:480

  可见:真

  标题:qsTr("定位器")

  第{

  中继器{

  型号:10

  矩形

  高度:txt.height

  宽度:txt.width

  color: index % 2==0?天蓝色:灰色

  文本{

  id: txt

  文本:qsTr(文本索引)

  font.pointSize: 24

  color: index % 2==0?红色:绿色

  }

  }

  }

  }

  }

  超出了范围也不会折行

  流量导入数量快速

  导入QtQuick .控制

  窗口{

  宽度:640

  身高:480

  可见:真

  标题:qsTr("定位器")

  流动{

  宽度:窗口宽度

  中继器{

  型号:10

  矩形

  高度:txt.height

  宽度:txt.width

  color: index % 2==0?天蓝色:灰色

  文本{

  id: txt

  文本:qsTr(文本索引)

  font.pointSize: 24

  color: index % 2==0?红色:绿色

  }

  }

  }

  }

  }必须要给流动设置一个宽度,才有换行的功能

  Gridimport QtQuick

  导入QtQuick .控制

  窗口{

  宽度:640

  身高:480

  可见:真

  标题:qsTr("定位器")

  网格{

  宽度:窗口宽度

  列:3

  中继器{

  型号:10

  矩形

  高度:txt.height

  宽度:txt.width

  color: index % 2==0?天蓝色:灰色

  文本{

  id: txt

  文本:qsTr(文本索引)

  font.pointSize: 24

  color: index % 2==0?红色:绿色

  }

  }

  }

  }

  }

  可以指定行列,一般来说只要指定列即可

  布局镜像导入QtQuick

  导入QtQuick .控制

  窗口{

  宽度:640

  身高:480

  可见:真

  标题:qsTr("定位器")

  LayoutMirroring.enabled: true

  布局镜像。子女继承:真

  网格{

  宽度:窗口宽度

  列:3

  中继器{

  型号:10

  矩形

  高度:txt.height

  宽度:txt.width

  color: index % 2==0?天蓝色:灰色

  文本{

  id: txt

  文本:qsTr(文本索引)

  font.pointSize: 24

  color: index % 2==0?红色:绿色

  }

  }

  }

  }

  }

  定位器这是一个附加属性,包含的定位器的详细信息

  网格{

  中继器{

  型号:16

  矩形

  id: rect

  宽度:30;身高:30

  边框宽度:1

  color: Positioner.isFirstItem?黄色:亮蓝色

  Text { text: rect .定位器。索引}

  }

  }

  }参考文档:https://doc . Qt . io/Qt-6/qml-Qt quick-定位器. html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: