(1) style 在您的 EDC 中
style {
name: "list_text_title_normal";
base: "font=Tizen:style=Bold font_size=32 color=#FF9100FF text_class=tizen ellipsis=1.0";
}
上面的样式,其实是一个Textblock Style,在EDC中是针对你EDC文件中的Textblock部分。据我所知,没有办法从 EDC 文件中获得这种风格。
如果你想在你的 EDC 中使用它,你需要添加一个组,其中包含一个带有样式的 Textblock 部分。 (注意:您不能在 elm_layout 对象上使用 elm_label API。)
例如)在 EDC 中
group { "my_edc_group";
parts {
...
textblock { "elm.text"; // your part name...
desc { "default";
...
text {
style: "list_text_title_normal";
...
}
...
}
}
...
}
}
在您的 C/C++ 代码中
Evas_Object *layout = elm_layout_add(parent);
elm_layout_file_set(layout, YOUR_PATH_FOR_EDJ_FILE, "my_edc_group");
elm_object_part_text_set(layout, "elm.text", "Hello World");
(2) elm_object_style_set 在您的 c/c++ 代码中
elm_object_style_set(label, "list_text_title_normal");
上面的style 表示主题风格的小部件。 Tizen/EFL 中的小部件有一些预定义的主题样式集。它与您在 EDC 文件中添加的内容完全不同。在小部件中添加新的style 非常困难并且难以维护您的代码。我不建议您自定义或添加您的主题样式。
(3) 一种不使用 EDC 的更简单方法。
// note: You should not set ellipsis and text_class as markup tag in a text for Elm_Label widget
// string from a file:
// eg. "font=Tizen:style=Bold font_size=32 color=#FF9100FF"
const char *textblockStyle = readLineFromFile(file); // your readLineFromFile function
Eina_Strbuf *buf = eina_strbuf_new();
eina_strbuf_append_printf(buf, "<%s>%s", textblockStyle, text);
elm_object_text_set(label, eina_strbuf_string_get(buf));
eina_strbuf_free(buf);