Как выровнять текст на виджете дополнительной метки?

Я хочу выровнять текст по центру elm_label виджет. Я не могу найти какие-либо функции для выравнивания текста, так как функция текста объекта evas elm_label функция. Кроме того, я не могу найти функцию, которая может получить размер текста (абсолютный пиксель или относительный размер) на этикетке.

я пытался elm_object_style_set с marker, он был показан жирным текстом в центре метки, но размер шрифта был слишком мал (меньше, чем стиль по умолчанию). (и я не хочу выделять жирным шрифтом текст.)

Как я могу выровнять текст по центру метки?

2 ответа

Решение

Вы можете использовать HTML-разметку, чтобы настроить отображение текста в elm_label.

Чтобы выровнять текст по центру, вы можете использовать <align> тег разметки со значением center,

std::string text = "<align = center> TEXT TO DISPLAY </align>";
Evas_Object *label = elm_label_add(parent);
elm_object_text_set(label,text.c_str());
evas_object_show(label);

Вы также можете использовать другие теги, такие как font_weight, font_style настроить отображаемый текст. Список всех возможных тегов можно найти здесь

Вы можете установить выравнивание метки через evas_object API. Скорее всего, вы ищете это:

evas_object_size_hint_align_set(label, 0.5, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);

0.5 - центр, вы можете попробовать 0.0 для выравнивания по левому краю и 1.0 для правого.

Другие вопросы по тегам