当前位置:  开发笔记 > 编程语言 > 正文

QML Applicationwindow调整口吃大小

如何解决《QMLApplicationwindow调整口吃大小》经验,为你挑选了1个好方法。

我遇到了一个问题,我希望是因为我不善于编写QML而不是因为Qt中的一些基本错误.

每当我在水平方向(宽度更改)调整应用程序窗口大小时,窗口不会调整到我释放鼠标的位置,而是"快照"回到其最小宽度.我已设法将其剥离到重现该bug的最基本要求.

不释放鼠标按钮会导致宽度在最小宽度和鼠标位置之间来回跳动.

删除项目可以删除错误

垂直调整大小(更改高度)如果鼠标长时间未释放(例如处于调整大小状态),有时可能会使应用程序崩溃

因此,实际上不可能调整大小

main.qml

import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4

ApplicationWindow {
    id: root
    visible: true
    minimumHeight: 768
    minimumWidth: 1024
    title: qsTr("Test")
    color: "#292525"

    Item {
        width: 0.9*parent.width
        height: 0.1*parent.height
    }
}

知道为什么会这样吗?



1> Robin Burche..:

你有一种微妙的绑定循环形式.QtQuickControls ApplicationWindow试图保持窗口内容的大小与其内部的内容相匹配,这些内容被调用contentItem,所有的孩子ApplicationWindow都被(默默地)重新定义,但是你的内容大小取决于窗口的大小.居住在.

所以,你调整窗口Item的大小contentItem,这会ApplicationWindow改变你的大小,这会改变你的大小,这会调整你的窗口大小(和你一起战斗).

像这样的东西可能会起作用:

import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4

ApplicationWindow {
    id: root

    visible: true
    minimumHeight: 768
    minimumWidth: 1024
    title: qsTr("Test")
    color: "#292525"

    // This item will just match the Window's size...
    Item {
        anchors.fill: parent

        // ... and here, we'll fill a part of it with a rectangle.
        Rectangle {
            color: "red"
            width: 0.9*parent.width
            height: 0.1*parent.height
        }
    }
}

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有