微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 EDC 更改文本样式?

如何解决如何使用 EDC 更改文本样式?

我想使用 EDC 更改以编程方式创建的标签样式:

style {
  name: "list_text_title_normal";
  base: "font=Tizen:style=Bold font_size=32 color=#FF9100FF text_class=tizen ellipsis=1.0";
}

我试图在这一行中包含我的 EDJ:

elm_theme_extension_add(NULL,PATH_TO_EDJ);

然后应用标签的样式:

elm_object_style_set(label,"list_text_title_normal");

但是标签不尊重风格,我该怎么办?我不想将样式定义放入 C/C++ 代码中(尽管我知道可以在文本中通过类似 HTML 的格式设置颜色和字体)。

解决方法

(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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?