gpt4 book ai didi

qt - 为什么我不能让 QML RowLayout 填充 ColumnLayout 的宽度?

转载 作者:行者123 更新时间:2023-12-03 08:27:36 24 4
gpt4 key购买 nike

我想将 RowLayout 的项目布局在其容器内均匀分布。但是,当其父级是 ColumnLayout 时,以某种方式设置 RowLayoutLayout.fillWidth 属性不会产生任何效果:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

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

ColumnLayout {
anchors.fill: parent
RowLayout {
Layout.fillWidth: true //this has no effect? why?
Repeater {
model: 3
Button {
Layout.alignment: Qt.AlignHCenter
}
}
}
}
}

期望:

enter image description here

现实:

enter image description here

最佳答案

您必须将“Layout.fillWidth: true”设置为项目,在本例中为按钮:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

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

ColumnLayout {
anchors.fill: parent
RowLayout {
Repeater {
model: 3
Button {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
}
}
}
}
}

enter image description here

如果您希望按钮具有固定宽度,则必须使用项目作为容器,并将按钮放置在容器的中心:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

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

ColumnLayout {
anchors.fill: parent
RowLayout {
Repeater {
model: 3
Item{
Layout.fillWidth: true
Layout.fillHeight: true
Button{
width: 100
anchors.centerIn: parent
}
}
}
}
}
}

enter image description here

关于qt - 为什么我不能让 QML RowLayout 填充 ColumnLayout 的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66216383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com