我遇到了一个问题,我希望是因为我不善于编写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 回答
你有一种微妙的绑定循环形式 . QtQuickControls'
ApplicationWindow
试图保持窗口内容的大小与其内部的内容相匹配,称为contentItem,ApplicationWindow
的所有子项都被(静默地)重新分配,但是你的内容大小依赖于窗口它居住在 .所以,你调整窗口的大小,这会改变
Item
的大小,这会改变contentItem
的大小,这会使ApplicationWindow
调整你的窗口大小(和你一起战斗) .像这样的东西可能会起作用: