我想在Black Berry 10开发中使用Cascades创建一个按钮,它有一个图像作为背景,也可能是一个白色的文本。我找到了这个类button,但似乎不支持将图像设置为按钮上的背景。我能做什么?有什么替代方法? 也许我应该考虑另一个库而不是Cascades来创建我的UI ???有什么建议吗?
答案 0 :(得分:2)
Container {
id:account
signal buttonClicked()
layout: DockLayout {
}
preferredWidth: 768.0
topMargin: 40.0
bottomMargin: 40.0
ImageButton {
id: addButton
defaultImageSource: "image/button_normal.png"
pressedImageSource: "image/button_press.png"
horizontalAlignment: HorizontalAlignment.Center
onClicked: {
buttonClicked();
}
}
Label {
text: "Add"
verticalAlignment: VerticalAlignment.Center
horizontalAlignment: HorizontalAlignment.Center
textStyle {
base: SystemDefaults.TextStyles.BodyText
fontSize: FontSize.Small
color: Color.create("#ffffff")
}
touchPropagationMode: TouchPropagationMode.None
}
}
答案 1 :(得分:0)
通过使用默认的Button类,您可以拥有一个包含文本和图像的按钮:cascades_button.html“> https://developer.blackberry.com/cascades/reference/bb_ cascades _button html的
实际上不建议在按钮上放置背景图像,文字在顶部。按钮应清晰易读。请在此处查看BlackBerry 10 UI准则:https://developer.blackberry.com/devzone/files/design/bb10/UI_Guidelines_BlackBerry_10.pdf
如果你真的想这样做,你总是可以在Cascades中构建一个自定义组件,其中的图像上面有一个标签。
答案 2 :(得分:0)
我遇到了同样的问题
最后,正如PBernhardt所说,我创建了一个带有ImageView或背景图像的自定义Container,并在里面添加了一个Label。
然后,我重写onTouch以捕获不同的触摸状态(event.isDown(),event.isMove(),event.isUp())并相应地更新按钮图形(文本颜色和背景图像)。
我正在使用Q_INVOKABLE方法绑定我的C ++文件。