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

OSCHINA-MIRROR/ZFFramework-ZFFramework

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

Введение

Добро пожаловать в ZFFramework — кроссплатформенный мощный фреймворк приложений на C++.

Здесь всё начинается с «ZF», что означает «Zero Framework».

  • Это не традиционный фреймворк, его можно загрузить как динамическую библиотеку, подключить и использовать.
  • Разработан для работы на любой платформе, поддерживающей реализацию, совместимую с C++03.

Домашняя страница:

Краткий обзор

cpp hello world

Этот фрагмент кода показывает, как вывести «hello world» в пользовательском интерфейсе и журнале вывода.

#include "ZFUIWidget.h" // for common UI module
ZFMAIN_ENTRY() { // app starts from here
    // show a hello world to log output
    ZFLog() << "hello wolrd";

    // show a window (full screen by default)
    zfobj<ZFUIWindow> window;
    window->show();

    // show a hello world as a text view
    zfobj<ZFUITextView> textView;
    window->child(textView)->c_alignTop()->c_margin(40);
    textView->text("hello world");

    // button and click (as observer)
    zfobj<ZFUIButtonBasic> button;
    window->child(button)->c_alignBottom()->c_margin(40);
    button->label()->text("click me");
    button->onClick([](const ZFArgs &zfargs) {
        ZFUIButtonBasic *button = zfargs.sender();
        ZFLogTrim() << "button clicked: " << button;
    });
}

lua hello world

В этом фрагменте кода показан эквивалентный код на Lua для использования ZFFramework, все привязки Lua автоматически выполняются с помощью отражения!

ZFLog('hello world')

local window = ZFUIWindow()
window:show()

local textView = zfAlloc('ZFUITextView')
window:child(textView):alignTop():margin(40)
textView:text('hello wolrd')

local button = ZFUIButtonBasic.ClassData():newInstance()
window:child(button):alignBottom():margin(40)
button:label():text('click me')
button:onClick(
    function (zfargs)
        ZFLog('button clicked: %s', zfargs:sender())
    end)

Мощный динамический регистр

И Lua, и CPP могут динамически регистрировать классы и методы. Мощная абстрактная система ввода-вывода

Цепочка HTTP, файлов и ZIP-файлов, а также чтение и запись содержимого в ZIP-файле аналогично работе с обычным локальным файлом.

#include "ZFCore.h"
ZFMAIN_ENTRY() {
    ZFResExtPathAdd("ZFCompress:http:http://192.168.xxx.xxx/xxx.zip|");
    ZFInputRead(ZFLogTrim(), ZFInputForRes("path/in/zip/file.txt"));
    ZFPathInfoTreePrint(ZFPathInfo("res:"));
}

Абстрактное чтение и запись:

#include "ZFCore.h"
ZFMAIN_ENTRY() {
    ZFInputRead(ZFLogTrim(), ZFInputForHttp("http://xxx.xxx/xxx.json"));
    zfauto obj = ZFObjectFromJson(ZFInputForHttp("http://xxx.xxx/xxx.json"))
}

Начало работы

  • Скачайте необходимые файлы.
  • Настройте необходимую среду для ZFFramework.
  • Изучите краткое руководство по работе с ZFFramework.
  • Ознакомьтесь с часто задаваемыми вопросами.

Подробно

Требования

Для основного модуля:

  • Компилятор, совместимый с C++03 (требуются шаблоны, не требуются boost/RTTI/исключения).
  • STL контейнеры (требуются: map/unordered_map/vector/deque/list), или предоставьте пользовательскую оболочку.

Для модуля реализации:

  • Зависит от фактической реализации платформы.

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

  • Минимальные требования.
  • Мощные возможности отражения, сериализации, стилизации логики.
  • Автоматическая привязка Lua, дополнительный код привязки или конфигурация не требуется.
  • Автоматическое сериализацию.
  • Расширенные глобальные наблюдатели событий и фильтры событий.
  • Полная модульность, дизайн «ядро + протокол + динамическая реализация».
  • Поддержка любой платформы, если вы можете предоставить собственную реализацию на C++.
  • Большинство реализаций можно легко и динамически заменить.
  • Все реализации требуются только в том случае, если используется их собственный модуль.
  • Простота взаимодействия с собственным кодом.

Лицензия

ZFFramework находится под лицензией MIT (см. здесь), не стесняйтесь копировать, изменять или использовать его.

Домашняя страница проекта: http://ZFFramework.com. Репозиторий: https://github.com/ZFFramework/ZFFramework.

Проблемы или запросы на вытягивание приветствуются.

Если вам нравится моя работа, купите мне кофе?

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

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

Введение

Кроссплатформенный фреймворк для приложений на C++, полностью динамическое отражение/сериализация, автоматическая привязка Lua через отражение. Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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