如何使用QML创建可以编辑的表格控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用QML创建可以编辑的表格控件相关的知识,希望对你有一定的参考价值。

参考技术A msgrid控件。 如果只是显示,使用List控件。 参考技术B 看你用的场合喽。可以不用QML实现,改用item - View的方法实现。本回答被提问者采纳

应用镜像转换来翻转/反映QML控件

我可以在QML中水平翻转/反映形状项。例如;我有以下形状:

enter image description here

我可以水平翻转/反射产生:

enter image description here

我知道我可以编辑我的QML代码以不同的方式绘制线条,但如果可能的话,只使用QML动画或其他东西来翻转它会更简单。

Shape {
    id: annotationHLine;
    anchors.left: annotationShp.right;
    anchors.top: annotationShp.top;
    anchors.topMargin: annotationShp.height * 0.5;

    ShapePath {
        strokeWidth: 2;
        strokeColor: "Green";
        fillColor: "transparent";
        startX: -slant; startY: 0;
        PathLine { x: relativeTargetX*0.5; y: 0 }
        PathLine { x: relativeTargetX; y: relativeTargetY }
    }
}
答案

是的,您可以通过简单地将水平镜像变换矩阵设置为形状:

transform: Matrix4x4 {
      matrix: Qt.matrix4x4(-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)
    }

编辑:

x位置并没有真正改变,它仍然是相同的,只是现在通过转换渲染对象。您可以通过在矩阵顶部堆叠平移来弥补这一点:

transform: [
  Matrix4x4 {
    matrix: Qt.matrix4x4(-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)
  },
  Translate {
    x: annotationHLine.width
  }
]

编辑2:

实际上,您可以将翻译合并到原始矩阵中以简化操作:

transform:  Matrix4x4 {
    matrix: Qt.matrix4x4( -1, 0, 0, but.width, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)}
  }

以上是关于如何使用QML创建可以编辑的表格控件的主要内容,如果未能解决你的问题,请参考以下文章

Qt 创建一个对触摸事件敏感的 QML 滑块

QML中如何基于loader更新底部控件

如何在 QML 中编辑 QQmlListProperty

vs里gridview控件创建的数据库表格怎么居中

如何得到其他进程里MSFlexGridWndClass表格控件里的内容

应用镜像变换来翻转/反射 QML 控件