【发布时间】:2014-05-27 12:08:03
【问题描述】:
我在使用 c++ 方法时设置标签的 TextStyle 时遇到问题,它总是导致应用程序崩溃。
我有一个 c++ getStyle() 方法。我希望能够这样调用它(删除参数以简化代码示例):
Label {
id: myLabel
text: "test with style"
textStyle.base: _App.getStyle();
}
以下方法不起作用:
TextStyle ApplicationUI::getStyle() {
TextStyle *blueStyle = new TextStyle(bb::cascades::SystemDefaults::TextStyles::smallText());
blueStyle->setColor(Color::Blue);
return *blueStyle;
}
目前我能够让它工作的唯一方法是将整个 Label 对象传递给一个方法并使用 c++ 设置样式。然而,这使得 QML 代码更加冗长,导致:
Label {
id: myLabel
text: "test with style"
onCreationCompleted: {
_App.setStyle(myLabel);
}
}
C++(工程)
void ApplicationUI::setStyle(AbstractTextControl* label) {
TextStyle *blueStyle = new TextStyle(bb::cascades::SystemDefaults::TextStyles::smallText());
blueStyle->setColor(Color::Blue);
label->textStyle()->setBase(*blueStyle);
}
有什么方法可以直接将TextStyle传递给QML Label,而不必将Label对象传递给方法?
【问题讨论】:
标签: c++ qt qml blackberry-10