【QtQuick】简单布局优先使用Row和Column,而不是ColumnLayout和RowLayout

布局优先使用Row和Column,而不是ColumnLayout和RowLayout

 

用Column进行垂直布局:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12


Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Column{
        anchors.fill:parent
        spacing: 10
        Text{
            text:"this is a Image"
            anchors.horizontalCenter: parent.horizontalCenter

        }
        Image{
            source: "assets:/data/webkit.png"
            fillMode: Image.PreserveAspectFit
            anchors.horizontalCenter: parent.horizontalCenter
            width:parent.width
            height:parent.height*2/3
        }
        TextField{
            text:"input data"
            anchors.horizontalCenter: parent.horizontalCenter
            width: parent.width
        }
    }

}

在QtCreator中显示:

【QtQuick】简单布局优先使用Row和Column,而不是ColumnLayout和RowLayout

 

用ColumnLayout进行垂直布局:

在没有使用Layout的一些属性进行设置的情况下,仅仅使用anchors是不能像Column一样自动进行排列的

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12


Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    ColumnLayout{
        anchors.fill:parent
        spacing: 10
        Text{
            text:"this is a Image"
            anchors.horizontalCenter: parent.horizontalCenter

        }
        Image{
            source: "assets:/data/webkit.png"
            fillMode: Image.PreserveAspectFit
            anchors.horizontalCenter: parent.horizontalCenter
            width:parent.width
            height:parent.height*2/3
        }
        TextField{
            text:"input data"
            anchors.horizontalCenter: parent.horizontalCenter
            width: parent.width
        }
    }
}

在QtCreator中显示:

【QtQuick】简单布局优先使用Row和Column,而不是ColumnLayout和RowLayout可以看到都混在一块了

 

因此,对于更简单的布局优先考虑Row和Column,因为是会自动排序的,

如果是比较复杂的布局才使用ColumnLayout和RowLayout

一开始博主还以为和QT一样是自动布局的,没想到会是一个坑!

 

 

上一篇:GitHub的注册和本地与远程操作


下一篇:QML 基础控件(下拉框、对话框、抽屉、滑动视图与页面切换)【下】