gpt4 book ai didi

qt - 甚至是 SplitView 中空间的初始分配

转载 作者:行者123 更新时间:2023-12-02 20:59:19 32 4
gpt4 key购买 nike

我正在使用 SplitView 编写 QML 应用程序。我希望初始空间在项目之间均匀分布,但一个项目占据了所有空间。

enter image description here

import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Controls 1.4

ApplicationWindow {
id:window; visible:true
width:500; height:300
title:'Borked Layouts'

SplitView {
orientation:Qt.Horizontal
anchors.fill:parent
Rectangle { color:'red'
Layout.minimumWidth:50; Layout.fillWidth:true
Layout.preferredWidth:window.width/2
}
SplitView {
orientation:Qt.Vertical
Layout.minimumWidth:50
Layout.preferredWidth:window.width/2
Rectangle { color:'green'
Layout.minimumHeight:50; Layout.fillWidth:true
}
Rectangle { color:'blue'
Layout.minimumHeight:50; Layout.fillWidth:true
}
}
}
}

我可以拖动空格之间的分隔符来实现我想要的分布,并且遵循最小尺寸。但如何才能在项目之间共享初始分配呢?

enter image description here

最佳答案

我以前从未使用过 SplitView,所以这对我来说是一个惊喜,但在查看 bugreports.qt.io 后对于类似的问题,我看到了this :

SplitView is not really a layout, so we will not support all the properties found in the attached Layout property. Just set width and height directly on the items when using SplitView.

这与一般的 Layout 用法有点冲突,所以我不确定为什么会这样,但我想这是有充分理由的。

所以,你可以这样实现:

import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Controls 1.4

ApplicationWindow {
id: window
visible: true
width: 500
height: 300

SplitView {
orientation: Qt.Horizontal
anchors.fill: parent

Rectangle {
color: 'red'
width: window.width / 2
}
SplitView {
orientation: Qt.Vertical
Layout.minimumWidth: 50

Rectangle {
color: 'green'
Layout.minimumHeight: 50
Layout.fillWidth: true
}
Rectangle {
color: 'blue'
Layout.minimumHeight: 50
Layout.fillWidth: true
}
}
}
}

关于qt - 甚至是 SplitView 中空间的初始分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39187977/

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