在Cascades上创建一个带有背景图像BB-10的按钮

时间:2013-02-08 12:38:25

标签: c++ blackberry-10 blackberry-cascades

我想在Black Berry 10开发中使用Cascades创建一个按钮,它有一个图像作为背景,也可能是一个白色的文本。我找到了这个类button,但似乎不支持将图像设置为按钮上的背景。我能做什么?有什么替代方法? 也许我应该考虑另一个库而不是Cascades来创建我的UI ???有什么建议吗?

3 个答案:

答案 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 ++文件。