我是QtQuick 2开发的新手,目前正在学习布局。 在我的应用程序中,我只是将3个矩形放置在列布局中。
顶部的“标题”矩形,高度为30
底部的“页脚”矩形,高度为30
介于两者之间的“主体”矩形可填充剩余空间
当我通过将应用程序窗口对齐到屏幕顶部来最大化Windows 10上的窗口时,所有内容都将正确调整大小,但是“旧”页脚矩形仍保留在原来的位置。我注意到它一直停留在这里,直到我单击按钮或执行某些操作以强制UI最终刷新并擦除页脚以前的位置为止。因此,当我在应用程序中放置不确定的进度条之类的问题时,问题就消失了。
import QtQuick 2.11
import QtQuick.Window 2.11
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
Window {
id: mainWindow
visible: true
minimumHeight:500
minimumWidth:1300
height: 500
width: 1300
//visibility: Window.Maximized
title: qsTr("layout practice")
ColumnLayout{
anchors.fill: parent
spacing: 0
Rectangle{
id:header
height: 30
color:"black"
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
Layout.preferredHeight: 30
Layout.maximumHeight: 30
Layout.minimumHeight: 30
Layout.fillWidth: true
}
Rectangle{
id:body
color:"blue"
Layout.fillHeight: true
Layout.fillWidth: true
Button {
id: button
x: 36
y: 200
text: qsTr("Button")
}
// ProgressBar{
// x: 36
// y: 118
// width:100
// height:10
// indeterminate: true
// }
}
Rectangle{
id:footer
height: 30
color:"grey"
Layout.alignment: Qt.AlignLeft | Qt.AlignBottom
Layout.preferredHeight: 30
Layout.maximumHeight: 30
Layout.minimumHeight: 30
Layout.fillWidth: true
}
}
}
最大化之前:https://drive.google.com/open?id=1jblUnaMdMV1Sc3uMJI96fQ57j75zzZso
最大化后:https://drive.google.com/open?id=1osIszI6utIWlRziaiFW38jxlpgriTOH4
如何避免这种情况?更改窗口高度后,如何强制刷新?