Введение
Добро пожаловать в ZFFramework — кроссплатформенный мощный фреймворк приложений на C++.
Здесь всё начинается с «ZF», что означает «Zero Framework».
Домашняя страница:
Онлайн-документы: http://ZFFramework.com
Репозиторий Github: https://github.com/ZFFramework/ZFFramework
История версии: ZFFrameworkDist
Краткий обзор
Этот фрагмент кода показывает, как вывести «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 для использования 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 находится под лицензией MIT (см. здесь), не стесняйтесь копировать, изменять или использовать его.
Домашняя страница проекта: http://ZFFramework.com. Репозиторий: https://github.com/ZFFramework/ZFFramework.
Проблемы или запросы на вытягивание приветствуются.
Если вам нравится моя работа, купите мне кофе?
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )