我在一个 Qt 项目上工作,几乎所有的 QML 项目都在同一个文件main.qml
中。该应用程序使用 StackLayout 来浏览其他 QML 文件,并且需要在其main.qml
自身中呈现项目。
我使用 Loader 调用包含 GridLayout 的组件,该 GridLayout 包含标签和图像。在这个容器之外,还有其他图像和标签锚定在mainWindow
.
问题是,当使用 Loader 在 StackLayout 中调用组件时,组件尺寸会覆盖 ApplicationWindow 中定义的图像。它表现为 fillHeight 所有 Window 这不是我想要的。
问题是,如何在不填充整个窗口的情况下加载组件,但在使用 StackLayout 之前保持原来的大小。
我仍然是 Qt 的初学者,因此欢迎任何其他首选的建议方法。
代码结构与此类似,
ApplicationWindow {
id: mainWindow
width: 500
height: 400
(... some code ...)
Image{
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.bottomMargin: 22
anchors.leftMargin: 24
width: 80
height: 40
fillMode: Image.Stretch
source: "qrc:/image.png"
}
StackLayout {
id: mainStackLayout
width: mainWindow.width
height: mainWindow.height
FirstPage {} // another .qml file
Loader {
sourceComponent: component
}
}
Component{
id: component
GridLayout {
id: grid
width: mainWindow.width
height: mainWindow.height
columns: 4
Labels{}
...
...
...
Labels{}
}