1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zlgopen-awtk

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

AWTK = Toolkit AnyWhere

Для китайских пользователей см. здесь

I. Введение

AWTK, сокращение от Toolkit AnyWhere, — это открытый графический интерфейс (GUI), разработанный компанией ZLG. Это кроссплатформенный GUI для встраиваемых систем, WEB, мини-программ, мобильных телефонов и ПК. Это мощный, эффективный, надёжный и простой в использовании графический интерфейс для разработчиков красивых приложений с графическим интерфейсом.

Добро пожаловать, разработчики, присоединяйтесь к нам в нашем развитии: План совместного строительства экологии.

AWTK имеет два значения:

  • Toolkit AnyWhere.
  • Встроенный графический интерфейс AWorksOS, операционной системы IoT от ZLG.

Репозитории исходного кода [AWTK]:

AWTK Designer — инструмент для проектирования пользовательского интерфейса:

  • Больше не нужно писать XML самостоятельно.
  • Создавайте пользовательский интерфейс перетаскиванием. Что видите, то и получаете.
  • Поддержка быстрого предварительного просмотра и упаковки ресурсов одним щелчком мыши.
  • Регистрация и загрузка: https://awtk.zlg.cn.

AWTK Designer

Скриншоты:

Chart-Demo.

MusicPlayer-Demo.

Watch.

II. Конечные цели

  • Поддерживать разработку встраиваемых приложений. ✔
  • Поддерживать разработку приложений Linux. ✔
  • Поддерживать разработку приложений MacOS. ✔
  • Поддерживать разработку приложений Windows. ✔
  • Поддерживать разработку веб-приложений. ✔
  • Поддерживать разработку Android-приложений. ✔
  • Поддерживать разработку iOS-приложений. ✔
  • Поддерживать разработку HarmonyOs-приложений. ✔
  • Поддерживать разработку 2D мини-игр.

III. Основные функции

1. Кроссплатформенность

AWTK — это кроссплатформенный графический интерфейс, который имеет два значения:

  • Код AWTK является кроссплатформенным. В настоящее время он совместим с такими платформами, как ZLG AWorksOS, Windows, Linux, MacOS, встраиваемый Linux, Android, iOS, HarmonyOS, Web и встраиваемые необработанные системы. Его можно легко портировать на различные RTOS. В будущем AWTK также может работать как мини-программы.

  • Кроме того, AWTK имеет кроссплатформенную библиотеку основных инструментов, которая включает списки, массивы, строки (UTF8 и widechar), эмиттеры событий, значения, объекты, файловую систему, мьютекс, потоки, формулы и анализ строк, чтобы приложения, которые вы разрабатываете с помощью AWTK, действительно могли работать на разных платформах.

2. Эффективность

AWTK обеспечивает эффективность за счёт следующих операций:

  • Обновляйте изменённые части с помощью алгоритмов грязных прямоугольников.
  • Поддерживайте 3 FrameBuffer, чтобы пользовательский интерфейс работал с максимальной частотой кадров (необязательно).
  • Файлы описания пользовательского интерфейса и файлы тем хранятся в эффективных двоичных форматах, чтобы их можно было анализировать быстрее.
  • Поддерживает различные интерфейсы ускорения GPU, включая OpenGL, DirectX, Vulkan и Metal и так далее.
  • Поддерживает 2D-интерфейсы ускорения встраиваемых платформ, такие как интерфейсы PXP от NXP и интерфейсы DMA2D от STM32, пользователь может легко адаптироваться к другим интерфейсам ускорения.

3. Стабильность

AWTK делает код максимально стабильным и надёжным следующими способами:

  • Выполняйте статические проверки с помощью cppcheck и facebook infer.
  • Динамически проверяйте память с помощью valgrind.
  • С примерно 20 000 строк кодов для модульного тестирования.
  • При поддержке мощной команды графического интерфейса ZLG.
  • Был проверен в нескольких практических проектах.
  • Был протестирован на нескольких платформах и компиляторах.
  • Имеет отличную архитектуру.
  • Проверка кода.
  • Ручное тестирование.

4. Мощность

  • Обильные виджеты (добавляется больше виджетов).
  • Поддержка... Поддержка различных форматов изображений (png/jpg/gif/svg).
  • Поддержка различных форматов шрифтов (растровые и векторные шрифты).
  • Поддержка функции анимации окон.
  • Поддержка функции анимации виджетов.
  • Поддержка HD-экрана.
  • Поддержка файла описания макета пользовательского интерфейса.
  • Поддержка файла темы пользовательского интерфейса.
  • Поддержка переключения тем во время выполнения.
  • Поддержка пользовательских правил для макета виджетов.
  • Поддержка пользовательских правил выделения диалогов.
  • С множеством вспомогательных инструментов.
  • Поддержка разных процессоров от бюджетных (например, Cortex M3) до высокопроизводительных.
  • Поддержка платформы без файловой системы и пользовательской файловой системы.
  • Поддержка платформ с необработанными системами и ОСРВ.

5. Простота в использовании

  • Множество демонстрационных кодов.
  • Полный документ API и руководство пользователя.
  • Техническая поддержка от мощной команды ZLG.
  • Дизайнер пользовательского интерфейса, который также разработан с AWTK (https://awtk.zlg.cn).
  • Использование декларативного языка описания пользовательского интерфейса. Пользователь может включить анимацию виджетов, анимацию окон и отображение изображений (png/jpg/svg/gif) одной строкой кода.

6. Настраиваемость

  • Поддержка расширения пользовательских виджетов.
  • Поддержка расширения пользовательской анимации.
  • Поддержка реализации пользовательского основного цикла.
  • Поддержка расширения пользовательской виртуальной клавиатуры.
  • Поддержка расширения загрузчика пользовательских изображений.
  • Поддержка расширения загрузчика пользовательских шрифтов.
  • Поддержка расширения механизма ввода пользовательского метода.
  • Поддержка расширения алгоритмов пользовательского макета для виджетов.
  • Поддержка расширения правил пользовательского выделения диалогов.
  • Поддержка реализации интерфейса ЖК-дисплея.
  • Поддержка расширения векторных движков (например, skia/cairo).
  • Все расширенные и встроенные виджеты обрабатываются одинаково.

7. Несколько языков разработки

AWTK был разработан на языке программирования C. Скрипты на разных языках могут быть сгенерированы IDL. Сгенерированный код привязки не только просто сопоставляет C API с целевым языком сценариев, но и соответствует стилям исходного кода целевого языка сценариев. В настоящее время поддерживаются следующие языки (будет добавлено больше языков):

  • C
  • Go
  • C++
  • lua
  • java
  • python
  • Javascript на jerryscript
  • Javascript на nodejs
  • Javascript на quickjs

8. Интернационализация

  • Поддержка Unicode.
  • Поддержка методов ввода.
  • Поддержка перевода строк.
  • Поддержка перевода изображений.
  • Поддержка двунаправленных алгоритмов текста.

9. Фреймворк MVVM для встроенного программного обеспечения тщательно отделяет пользовательские интерфейсы от бизнес-логики

  • Высокая производительность.
  • Низкое использование памяти.
  • Более тщательная изоляция.
  • Переносимость на другие графические интерфейсы.
  • Меньше кода (~5000 строк).
  • Нет необходимости изучать API AWTK.
  • Поддерживает несколько языков программирования (в настоящее время поддерживает C/JS).

Подробнее см. https://github.com/zlgopen/awtk-mvvm

10. Исходный код открыт и доступен для коммерческого использования (LGPL)

IV. Моделирование запуска

Загрузка кода

  • Загрузите с помощью git.

Git под Windows

Загрузка кода

git clone https://github.com/zlgopen/awtk.git

В Windows коды можно загрузить с помощью графического инструмента git.

Обновление кода (в каталоге awtk)

git pull

Преимущество использования Git заключается в том, что позже будет очень удобно обновлять код.

  • Непосредственно загрузите zip-файл.

Загрузите zip-файл. После распаковки файл следует переименовать в awtk.

Mac

Если nodejs, scons и sdl2 не установлены, запустите следующую команду в терминале (при условии, что brew установлен):

brew install scons sdl2 node

Скомпилируйте и запустите (войдите в каталог, где находится awtk, и выполните следующую команду в терминале):

scons
./bin/demoui

Ubuntu (версия >=16)

Если scons и зависимый пакет программного обеспечения не установлены, выполните следующую команду в терминале:

sudo apt-get install gcc g++ scons libsndio-dev libgtk-3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libasound2-dev libibus-1.0-dev fcitx-libs-dev git vim clang-format libharfbuzz-dev nodejs libreadline-dev

Скомпилируйте и запустите (войдите в каталог awtk и выполните следующую команду в терминале):

scons
./bin/demoui
``` **Windows**

> Пожалуйста, установите Python (для 64-битной системы должен быть установлен 64-разрядный Python), SCons и Visual Studio C++ (версия >=2017) сначала.

> Если pywin32 не установлен, пожалуйста, используйте pip для установки:

pip install pywin32


Скомпилируйте и запустите (войдите в каталог awtk и выполните следующую команду в терминале):

Установите nodejs:

scons bin\demoui


**Compile prams**

Справка:

scons help


Экспорт файла параметров компиляции:

scons DEFINE_FILE=./awtk_config_define.py


Сборка файла параметров компиляции:

scons EXPORT_DEFINE_FILE=./awtk_config_define.py


**Для всех платформ**

Если PIL не установлен, пожалуйста, используйте pip для его установки:

pip install Pillow


Если nodejs glob не установлен, пожалуйста, используйте npm для его установки:

npm install -g glob


V. **Онлайн демонстрация**

* Онлайн демонстрация основных виджетов: https://awtk.zlg.cn/demos/awtk/demoui/index.html

* Графическая демонстрация: https://awtk.zlg.cn/demos/awtk_projects/Chart.v2-Demo/index.html

* Демонстрация музыкального проигрывателя: https://awtk.zlg.cn/demos/awtk_projects/MusicPlayer.v2-Demo/index.html

* Демонстрация умных часов: https://awtk.zlg.cn/demos/awtk_projects/SmartWatch.v2-Demo/index.html

VI. **Перенос на платформу**

Для получения подробной информации обратитесь к совместному плану экологии AWTK (docs/awtk_ecology.md).

VII. **Языковая привязка**

* Генератор кода привязки AWTK: https://github.com/zlgopen/awtk-binding

* Привязка LUA: https://github.com/zlgopen/awtk-lua

* Привязка Go: https://github.com/zlgopen/awtk-go

* Привязка C++: https://github.com/zlgopen/awtk-cpp

* Привязка JAVA: https://github.com/zlgopen/awtk-java

* Привязка Python: https://github.com/zlgopen/awtk-python

* Мини-привязка JVM: https://github.com/zlgopen/awtk-minijvm

* Быстрая привязка JS: https://github.com/zlgopen/awtk-quickjs

* Привязка NodeJS: https://github.com/zlgopen/awtk-nodejs

* Привязка JerryScript: https://github.com/zlgopen/awtk-jerryscript

VIII. **Связанные проекты**

* Шаблон проекта: https://github.com/zlgopen/awtk-hello

* MVVM шаблон проекта: https://github.com/zlgopen/awtk-mvvm-c-hello

* awtk-csv-file: https://github.com/zlgopen/awtk-csv-file

* awtk-database-repository: https://github.com/zlgopen/awtk-database-repository

* awtk-sqlite3: https://github.com/zlgopen/awtk-sqlite3

* awtk-vscode-plugin: https://github.com/zlgopen/awtk-vscode-plugin

* awtk-restful-httpd: https://github.com/zlgopen/awtk-restful-httpd

* Автоматизированный тестовый движок: https://github.com/zlgopen/awtk-ui-automation

* Регрессионный тест: https://github.com/zlgopen/awtk-regression-test

* Демо-коды с C программой: https://github.com/zlgopen/awtk-c-demos

* Замечательные примеры: https://github.com/zlgopen/awtk-examples

* HTTP клиент: https://github.com/zlgopen/awtk-http-client

* AWTK-MVVM: https://github.com/zlgopen/awtk-mvvm

* Примеры MVC/MVVM: https://github.com/zlgopen/awtk-patterns

* Генераторы виджетов: https://github.com/zlgopen/awtk-widget-generator

* QR код: https://github.com/zlgopen/awtk-widget-qr

* TinyGL: https://github.com/zlgopen/awtk-widget-glview

* Number-label: https://github.com/zlgopen/awtk-widget-number-label

* Редактор кода: https://github.com/zlgopen/awtk-widget-code-edit

* Date Picker: https://github.com/zlgopen/awtk-widget-date-picker

* Table View: https://github.com/zlgopen/awtk-widget-table-view

* Tree View: https://github.com/zlgopen/awtk-widget-tree-view

* Shape: https://github.com/zlgopen/awtk-widget-shape

* HTML View: https://github.com/zlgopen/awtk-widget-html-view

* ios/android like list item: https://github.com/zlgopen/awtk-widget-slidable-row

* Примеры... Для пользовательских виджетов: VLabel (https://github.com/zlgopen/awtk-widget-vlabel).

* Примеры для пользовательских виджетов: rlottie (https://github.com/zlgopen/awtk-widget-rlottie).

* Примеры для пользовательских виджетов: rive (https://github.com/zlgopen/awtk-widget-rive).

* Примеры для пользовательских виджетов: slider circle (https://github.com/zlgopen/awtk-widget-slider-circle).

* Примеры для пользовательских виджетов: progress polygon (https://github.com/zlgopen/awtk-widget-progress-polygon).

* Интеграция 3D-движка OGRE (https://github.com/zlgopen/awtk-ogre).

* Примеры для пользовательских виджетов: liquid flow (https://github.com/zlgopen/awtk-widget-liquid-flow).

* Примеры загрузчика пользовательских шрифтов (https://github.com/zlgopen/awtk-custom-font-loader).

* Написание приложения AWTK с помощью ReactJS (https://github.com/zlgopen/react-awtk).

* awtk-modbus (https://github.com/zlgopen/awtk-modbus).

* awtk-ftpd (https://github.com/zlgopen/awtk-ftpd).

* awtk-ftp-fs (https://github.com/zlgopen/awtk-ftp-fs).

* awtk-hmi (https://github.com/zlgopen/awtk-hmi).

Третья сторона предоставляет:

* QR-код (https://github.com/CUITzhaoqi/awtk-qr).

* Круглые ползунки (https://github.com/longyuwlz/awtk_slider_circle).

* Блокировка жестов (https://gitee.com/zhangzhongji/awtk-widget-gesture-lock).

## IX. Документация

* Документы разработки (docs/README.md).

* Журналы изменений (docs/changes.md).

* TODO (TODO.md).

* Руководство для начинающих и справочник (https://github.com/zlgopen/awtk-docs).

## X. План совместного экологического строительства

* План совместного экологического строительства (docs/awtk_ecology.md).
* Глубокое партнёрство:
    * NXP (https://www.nxp.com).
    * Anyka (http://www.anyka.com).
    * Ingenic (http://www.ingenic.com.cn).
    * Mind Motion (http://www.mindmotion.com.cn).
    * Bestechnic (https://www.bestechnic.com).

## XI. Сообщество разработчиков

Приглашаем всех заинтересованных разработчиков оценить и попробовать использовать AWTK. Если у вас есть какие-либо предложения или вопросы о AWTK, пожалуйста, добавьте WeChat-аккаунт zlgmcu-888, чтобы войти в группу общения AWTK, и команда ZLG R&D ответит на них.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

AWTK, полное название Toolkit AnyWhere — это набор инструментов для разработки графического интерфейса пользователя (GUI), созданный ZLG на основе языка C. Цель AWTK — предоставить пользователям мощный, эффективный, надёжный, простой в использовании и способный легко создавать впечатляющие эффекты графический интерфейс, а также обеспечить кроссп... Развернуть Свернуть
LGPL-2.1
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/zlgopen-awtk.git
git@api.gitlife.ru:oschina-mirror/zlgopen-awtk.git
oschina-mirror
zlgopen-awtk
zlgopen-awtk
master