qt - 如何删除 Flickable QML 组件的边界?
问题描述
我想显示大量内容,例如,在比内容更小的窗口内显示多个图像的网格,类似于地理地图,但我希望自己的组件作为“地图”而不是地图。对于这个最小的工作示例,让我们将总大小为 1000x1000 的图像网格作为内容,其中包含仅 300x300 的内容的窗口。
我尝试了 2 种不同的方法,但我只会详细介绍第一种方法,因为这是最接近我想要的结果的方法:
我已经尝试过 Flickable 组件,但内容无法移动到预定义的范围之外,从而使用户无法移动视图以显示内容的所有部分。因此,我现在正在考虑的最简单的解决方案是是否可以从 Flickable 组件中删除这些边界,但是如何?
我也尝试过 Map 组件,但它需要一个“插件”,我无法弄清楚如何将此组件与我自己的图像网格内容一起使用。
我想展示的内容是这样的
Grid {
columns: 5
spacing: 2
Repeater {
model: ListModel {
ListElement {
path: 'test1'
}
ListElement {
path: 'test2'
}
// ...
ListElement {
path: 'test25'
}
}
Rectangle {
width: 200
height: 200
Image {
anchors.fill: parent
source: 'file:' + path
}
}
}
}
我试过了,像这样把它放在 Flickable 里面
Flickable {
anchors.centerIn: parent
width: 300
height: 300
contentWidth: 1000
contentHeight: 1000
clip: true
// INSERT CUSTOM GRID COMPONENT HERE
}
这会按预期在内容内产生 300x300 视图,但是一旦您开始浏览内容以查看其不同部分,您就会被边界阻止,阻止您看到超出这些边界的任何内容。您可以在拖动时看到它,但是一旦您释放内容的视图就会重置为这些边界。
那么如何消除这些界限呢?(或者是否有更适合我的应用程序的不同组件?)
这是一个 gif,显示了如何将内容拖动到边界之外,但一旦释放,它只会上升到边界而不是进一步
解决方案
我发现了问题,我错误地设置了 Flickable 的 contentWidth 和 contentHeight,这个例子工作正常。contentWidth 和 contentHeight 确定您可以轻拂的范围。
推荐阅读
- ms-access - 更新主表记录时更新关联记录
- adobe - 需要手动更新indesign上传文件的documentID和InstanceID
- r - 如何使用数据框内的列表快速扩展数据框
- windows - 在 Microsoft Store 上发布 CLI 工具
- java - 伪代码数组符号混淆
- deepsecurity - 我需要一些关于未返回预期响应的 API 调用的指导
- python - 教程中的所有选项都失败后如何在 Mac 上安装 Biopython?
- java - 测试具有依赖关系的 Spring Boot 控制器?(jUnit)
- svelte - 绑定值传递给 on:click 回调(锚标记)
- doctrine-query - 如何检查控制器中的唯一实体