Blackberry 10 Cascades,qml(C++和QT)中的布局出现问题
Having an issue with the layouts in Blackberry 10 Cascades, qml (C++ & QT)
我对Blackberry 10 Cascades中的布局有问题。
我有一个qml文件,里面有以下内容:
content: Container {
Container {
id: topBar
objectName: "topBar"
layout: DockLayout {}
ImageButton {
id: back
objectName: "back"
defaultImageSource: "asset:///images/back.png"
onClicked: app.goBack()
minHeight: 100
minWidth: 100
maxHeight: 100
maxWidth: 100
horizontalAlignment: HorizontalAlignment.Left
}
Label {
id: heading
objectName: "heading"
textStyle { fontSize: FontSize.Large }
horizontalAlignment: HorizontalAlignment.Center
}
ImageButton {
id: add
objectName: "add"
defaultImageSource: "asset:///images/add.png"
onClicked: app.add()
minHeight: 100
minWidth: 100
maxHeight: 100
maxWidth: 100
horizontalAlignment: HorizontalAlignment.Right
}
ActivityIndicator {
id: activityIndicator
objectName: "activityIndicator"
minHeight: 100
minWidth: 100
maxHeight: 100
maxWidth: 100
horizontalAlignment: HorizontalAlignment.Right
}
}
}
我想把后退按钮调到左边。标题在中间,添加按钮和活动指示器在右边(我希望活动指示器在最右边,但当它不显示时,我希望添加按钮在最右边)。
我不明白为什么这些物体都叠在一起(在同一个地方)。
在dock中,布局元素将相互重叠。很可能你的topBar容器只占用了容纳最大孩子所需的空间。请尝试设置HorizontalAlignment.Fill或设置minWidth。
您的后退按钮和活动指示器也将相互重叠。我会把它们放在水平堆栈布局中,这样活动指示器总是在右边。
你的最终布局可能是这样的:
Container {
id: toppbar
docklayout
minWidth: 600
ImageButton {
id: back
horizontalAlignment left
}
Label {
id: heading
horizontalAlignment center
}
Container {
horizontalAlignment right
stacklayout leftToRight
addButton
activity indicator
}
}
只要删除顶级Container就可以了——它在这里是一个多余的容器,而且没有任何布局。嵌入的元素存在于顶级容器中默认配置的布局中,因此,所有这些元素都堆叠在一起。
所以,通过这个修改,你的代码将看起来像这个
content: Container {
id: topBar
objectName: "topBar"
layout: DockLayout {
}
ImageButton {
id: back
objectName: "back"
defaultImageSource: "asset:///images/back.png"
onClicked: app.goBack()
minHeight: 100
minWidth: 100
maxHeight: 100
maxWidth: 100
horizontalAlignment: HorizontalAlignment.Left
}
Label {
id: heading
objectName: "heading"
textStyle {
fontSize: FontSize.Large
}
horizontalAlignment: HorizontalAlignment.Center
}
ImageButton {
id: add
objectName: "add"
defaultImageSource: "asset:///images/add.png"
onClicked: app.add()
minHeight: 100
minWidth: 100
maxHeight: 100
maxWidth: 100
horizontalAlignment: HorizontalAlignment.Right
}
ActivityIndicator {
id: activityIndicator
objectName: "activityIndicator"
minHeight: 100
minWidth: 100
maxHeight: 100
maxWidth: 100
horizontalAlignment: HorizontalAlignment.Right
}
}
在QML中,锚用于此目的。请参阅:http://qt-project.org/doc/qt-4.8/qml-anchor-layout.html
例如,您的按钮需要类似以下内容:
anchors.left: parent.left
anchors.leftMargin: 10
您也可以使用Column、Row或Grid QML元素。http://jryannel.wordpress.com/2010/02/19/rows-and-columns/http://harmattan-dev.nokia.com/docs/library/html/qt4/qml-grid.html
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 有关C++/组件数据布局、数据成员访问、方法的一般问题
- 使用tesseract 3.01的页面布局分析时出现的奇怪问题
- 布局问题:当表单的布局设置为垂直时,组框中的Qlistbox会自动展开
- Blackberry 10 Cascades,qml(C++和QT)中的布局出现问题
- XAML UI布局问题
- Qt c++ QMenuBar在滚动时的布局问题
- 升力定向布局问题