QtQuick 2窗口调整大小不刷新元素

时间:2018-07-29 02:51:19

标签: qt qt5 qtquick2 qtquickcontrols2

我是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

enter image description here

最大化后:https://drive.google.com/open?id=1osIszI6utIWlRziaiFW38jxlpgriTOH4

enter image description here

如何避免这种情况?更改窗口高度后,如何强制刷新?

0 个答案:

没有答案