FAQ
Функции
Макрос return_value_if_fail не является оригинальным изобретением AWTK, а взят из GTK+ (или glib).
Преимущества
В случае ошибки параметра молча возвращает код ошибки, который фактически является снисходительностью к вызывающей стороне. В режиме Debug можно вывести предупреждение или даже assert, что очень полезно для поиска ошибок.
На что следует обратить внимание
Преимущества
Можно использовать imagemagic для преобразования:
convert bg.png -ordered-dither o8x8,32,64,32 bg.jpg
Есть несколько способов получить значение элемента управления:
widget_t* slider = widget_lookup(win, "slider", TRUE);
double value = SLIDER(slider)->value;
При прямом доступе к свойствам элементов управления необходимо использовать соответствующие макросы (например, SLIDER) для приведения типов.
В Ubuntu 14 есть проблемы с OpenGL. Используйте программное обеспечение AGGE для рендеринга. Измените awtk_config.py:
NANOVG_BACKEND='AGGE'
<normal bg_color="rgba(200,200,200,0.1)" />
Полупрозрачное изображение. При создании изображения используйте формат PNG и сохраняйте альфа-канал.
Полностью прозрачный элемент управления (включая дочерние элементы управления). Используйте функцию widget_set_opacity для установки непрозрачности.
/**
* @method widget_set_opacity
* Устанавливает непрозрачность элемента управления.
*
*>На встроенных платформах полупрозрачные эффекты могут значительно снизить производительность, будьте осторожны при использовании.
*
* @param {widget_t*} widget Объект элемента управления.
* @param {uint8_t} opacity Непрозрачность (значения от 0 до 255, где 0 означает полностью прозрачный, а 255 — полностью непрозрачный).
*
* @return {ret_t} Возвращает RET_OK в случае успеха, иначе — неудачу.
*/
ret_t widget_set_opacity(widget_t* widget, uint8_t opacity);
Непрозрачность повлияет на все элементы, включая шрифты, и обычно подходит только для реализации эффектов затухания и затухания.
Клавиатуру можно настроить в соответствии с вашими потребностями, изменив design/default/ui/kb_default.xml.
<pages x="0" y="bottom" w="100%" h="-28" active="4">
children_layout="default(r=4,c=1,s=2,m=2)"
<keyboard theme="keyboard" x="0" y="bottom" w="100%" h="40%">
После внесения изменений необходимо обновить скрипт ресурсов:
python scripts/update_res.py ui
Функция tk_mem_stat может предоставить информацию об использовании памяти, или вы можете напрямую вызвать tk_mem_dump для отображения использования памяти.
Реализация функции tk_mem_dump выглядит следующим образом:
void tk_mem_dump(void) {
mem_stat_t s = tk_mem_stat();
log_debug("used: %d bytes %d blocks\n", s.used_bytes, s.used_block_nr);
}
Если системе не хватает памяти, она действительно может работать медленнее, и в этом случае система может очистить часть или всю декодированную память изображений, и при следующем использовании этих изображений они будут повторно декодированы.
Вы можете установить точку останова в функции mem.c tk_mem_on_out_of_memory, которая вызывается при нехватке памяти. Если эта функция вызывается, это указывает на нехватку памяти.
Уменьшите количество одновременно открытых окон.
Определите WITH_BITMAP_BGR565 или WITH_BITMAP_RGB565 в зависимости от ситуации (формат lcd), чтобы декодировать непрозрачные изображения в 16 бит.
Функцию log_set_log_level можно использовать для настройки уровня журнала, с её помощью можно отключить низкоуровневую информацию журнала.
/**
* @метод log_set_log_level
*
* Настройка уровня журнала.
*
* @параметр {log_level_t} log_level Уровень журнала.
*
* @возвращаемое значение {ret_t} Возврат RET_OK означает успех, в противном случае — сбой.
*/
ret_t log_set_log_level(log_level_t log_level);
В awtk_main.inc есть следующий код:
#ifdef NDEBUG
log_set_log_level(LOG_LEVEL_INFO);
#else
log_set_log_level(LOG_LEVEL_DEBUG);
#endif /*NDEBUG*/
Если вы используете awtk_main.inc в качестве точки входа приложения, определение NDEBUG также отключит отладочную информацию.
Определите макрос NATIVE_WINDOW_BORDERLESS в awtk_config.py и перекомпилируйте:
COMMON_CCFLAGS=COMMON_CCFLAGS+' -DNATIVE_WINDOW_BORDERLESS=1 '
Пусть функция обработки событий вернёт RET_STOP, AWTK больше не вызовет последующие функции обработки событий.
Поскольку элементы управления зарегистрированы, даже если они не используются, компилятор всё равно скомпилирует соответствующий код. Поэтому, чтобы оптимизировать ненужный код, необходимо удалить регистрацию элементов управления.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )