我对QML非常陌生,而且我正努力在QML中定义基本布局。如何将一个元素定位到窗口,以便在窗口被用户调整大小时调整大小?我想添加一个矩形来填充窗口中的所有可用空间,但是我还没有找到从qml文件中完成此操作的方法。到目前为止我发现的所有例子都使用固定的宽度和高度,但这意味着当窗口大小改变时,元素将保持其预设大小。将QML元素锚定到窗口
1
A
回答
3
针对您的具体问题:
- 锚所有基于他们的父母(兄弟姐妹)的元素。
- 总是让您的顶级qml elemnt填充查看器空间,如here所述。
添加到它。无论何时您需要做这样的调整,您都需要从一方到另一方告知几何变化。我的意思是,从qml到C++或从C++到qml。
告诉QML有关在上面的窗口大小调整:在QML
你的顶级父元素不会得到有关widget的调整的任何信号。你需要手动完成。
要获得信息顶部部件实际上已经重新大小,你需要实现resizeEvent功能。
每当你的实现被调用,您需要的信号,一些大小调整已经发生了QML侧,因此顶部QML家长也应该调整自己。
告诉C++约在顶部QML元素调整:
同样,你的C++部件将无法获得有关页首QML元素的大小调整的任何信号。您需要手动执行:
- 将C++端的类暴露给qml。
- 每当top qml元素发生变化时,调用此类的函数来通知此更改,并要求它调整顶部小部件的大小。
1
简单的答案,这是使用
Item {
anchors.fill: parent
}
这是equivelent到
Item {
anchors {
top: parent.top
left: parent.left
right: parent.right
bottom: parent.bottom
}
}
其中母公司是你想要的物品被内部固定的对象。虽然这通常是父母,但它在技术上可以固定在任何东西上。
我想补充一点,通常你静态大小的顶级元素,因为在一个QML应用程序的默认选项,应用程序窗口将大小根元素在你的主QML文件大小。如果你想做一些更棘手的事情,你需要修改为你的应用程序生成QDeclarativeView的C++。
相关问题
- 1. 如何将元素值从父窗口发送到子图层窗口元素?
- 2. Resize Qml窗口
- 3. 是否可以将元素锚定到居中元素?
- 4. HTML:将元素锚定到元素的右侧
- 5. 将窗口的所有元素绑定到对象
- 6. 如何将锚元素附加到div?
- 7. (How)我可以访问qml元素的相对位置到主窗口
- 8. 将qml项目移出窗口左侧
- 9. 我如何锚定元素?
- 10. 将引导弹窗输入值绑定到拥有弹出窗口的元素
- 11. 定位元素使用jQuery WRT窗口
- 12. 弹出窗口中的固定元素
- 13. 每当我点击任何锚点元素,窗口跳转到移动顶部。
- 14. 跳转到元素,窗口居中?
- 15. 滚动到元素底部的窗口
- 16. jquery - 在窗口中找不到元素
- 17. QML窗口最小宽度
- 18. QML:拖动无框窗口
- 19. 无框pyqt/qml窗口
- 20. 从QML打开Qt窗口
- 21. 如何将面板锚定到DOM元素?
- 22. 如何将ImageBrush锚定到元素的左下角?
- 23. 将javascript绑定到动态创建的锚点元素
- 24. &和锚元素
- 25. qml元素的自定义渲染
- 26. 如何在窗口加载后将焦点调用到元素?
- 27. 如何使用anchorscroll()将窗口滚动到AngularJS中的元素?
- 28. 将div元素缩放到窗口大小
- 29. 将元素粘贴到浏览器窗口/容器底部
- 30. 添加/插入动态QML元素QML将与视图C++
这对于其他元素内部的元素是正确的,但是当窗口调整大小时要调整根元素的大小,我必须将QDeclarativeView的调整大小模式设置为SizeRootObjectToView – svb 2013-02-20 08:41:29