• Roson的Qt之旅 #111 QML布局-ColumnLayout和RowLayout


    1.ColumnLayout(列布局)

    GridLayout基本相同,不同的是所有的控件都只能在一列中显示。

    导入声明:
    import QtQuick.Layouts 1.3


    继承自:Item

    ColumnLayout中的项目支持这些附加属性:

    • Layout.minimumWidth(最小宽度)
    • Layout.minimumHeight(最小高度)
    • Layout.preferredWidth(首选宽度)
    • Layout.preferredHeight(首选高度)
    • Layout.maximumWidth(最大宽度)
    • Layout.maximumHeight(最大高度)
    • Layout.fillWidth(填充宽度)
    • Layout.fillHeight(填充高度)
    • Layout.alignment(对齐方式)
    • Layout.margins(边距)
    • Layout.leftMargin(左边距)
    • Layout.rightMargin(右边距)
    • Layout.topMargin(上边距)
    • Layout.bottomMargin(下边距)

    1.   ColumnLayout{
    2.       spacing: 2
    3.       Rectangle {
    4.           Layout.alignment: Qt.AlignCenter
    5.           color: "red"
    6.           Layout.preferredWidth: 40
    7.           Layout.preferredHeight: 40
    8.       }
    9.       Rectangle {
    10.           Layout.alignment: Qt.AlignRight
    11.           color: "green"
    12.           Layout.preferredWidth: 40
    13.           Layout.preferredHeight: 70
    14.       }
    15.       Rectangle {
    16.           Layout.alignment: Qt.AlignBottom
    17.           Layout.fillHeight: true
    18.           color: "blue"
    19.           Layout.preferredWidth: 70
    20.           Layout.preferredHeight: 40
    21.       }
    22.   }

     

    layoutDirection : enumeration

    这个属性持有行的布局方向--它控制项目是从左到右还是从右到左布局。如果指定了Qt.RightToLeft,左对齐的项目将是右对齐的,右对齐的项目将是左对齐的。
    可能的值:

    • Qt.LeftToRight (default) - 项目从左到右排列。
    • Qt.RightToLeft - 项目从右到左排列。

    这个QML属性在QtQuick.Layouts 1.1中引入。
    参见GridLayout::layoutDirection和ColumnLayout::layoutDirection。

    spacing : real
    此属性持有每个单元格之间的间距。默认值为5。

    2.RowLayout(行布局)

    与GridLayout基本相同,不同的是所有控件只能显示在一行中。

    导入声明:
    import QtQuick.Layouts 1.3


    继承自:Item


    它为开发者提供了便利,因为它提供了一个更简洁的API。
    RowLayout中的项目支持这些附加属性:

    • Layout.minimumWidth(最小宽度)
    • Layout.minimumHeight(最小高度)
    • Layout.preferredWidth(首选宽度)
    • Layout.preferredHeight(首选高度)
    • Layout.maximumWidth(最大宽度)
    • Layout.maximumHeight(最大高度)
    • Layout.fillWidth(填充宽度)
    • Layout.fillHeight(填充高度)
    • Layout.alignment(对齐方式)
    • Layout.margins(边距)
    • Layout.leftMargin(左边距)
    • Layout.rightMargin(右边距)
    • Layout.topMargin(上边距)
    • Layout.bottomMargin(下边距)

     

    1. RowLayout {
    2. id: layout
    3. anchors.fill: parent
    4. spacing: 6
    5. Rectangle {
    6. color: 'teal'
    7. Layout.fillWidth: true
    8. Layout.minimumWidth: 50
    9. Layout.preferredWidth: 100
    10. Layout.maximumWidth: 300
    11. Layout.minimumHeight: 150
    12. Text {
    13. anchors.centerIn: parent
    14. text: parent.width + 'x' + parent.height
    15. }
    16. }
    17. Rectangle {
    18. color: 'plum'
    19. Layout.fillWidth: true
    20. Layout.minimumWidth: 100
    21. Layout.preferredWidth: 200
    22. Layout.preferredHeight: 100
    23. Text {
    24. anchors.centerIn: parent
    25. text: parent.width + 'x' + parent.height
    26. }
    27. }
    28. }

     

    layoutDirection : enumeration

    这个属性持有行的布局方向--它控制项目是从左到右还是从右到左布局。如果指定了Qt.RightToLeft,左对齐的项目将是右对齐的,右对齐的项目将是左对齐的。
    可能的值:

    • Qt.LeftToRight (default) - 项目从左到右排列。
    • Qt.RightToLeft - 项目从右到左排列。

    这个QML属性在QtQuick.Layouts 1.1中引入。
    参见GridLayout::layoutDirection和ColumnLayout::layoutDirection。

    spacing : real
    此属性持有每个单元格之间的间距。默认值为5。

  • 相关阅读:
    【pytorch学习笔记】01-安装与基础使用
    uniapp—day02
    Python 文件和文件夹操作
    网络安全(黑客)自学
    JarFile实例多 Finalizer占用内存过大 引起的YGC时间过长 的问题排查和解决办法
    天宇优配|平台助企“抱团出海” “小而美”中觅“先机”
    十二. 实战——项目部署(springboot 和 微服务)
    odoo 为可编辑列表视图字段搜索添加查询过滤条件
    开关电源环路稳定性分析(05)-传递函数
    聊聊TraceIdPatternLogbackLayout
  • 原文地址:https://blog.csdn.net/jolin678/article/details/126579233