1.安装Kanzi。

2.使用Kanzi studio创建工程。

Kanzi创建的工程会包含以下目录结构:

其中,

Tool_project文件夹中存放的是设计师设计的工程,包含kanzi UI的工程的所有文件。

Application文件夹则为代码的工程文件夹。该文件夹下的bin文件夹存放设计师导出的kzb文件,src文件夹存放编写的代码,config里面存放对应的vs、vc、eclipse工程文件。

UI设计师和软件工程师通过bin目录下的kzb资源文件联系起来。UI设计师通过kanzi studio设计工具导出kzb资源文件到该目录,而软件工程师使用engine读取该kzb文件创建界面,监听点击事件,传递数据,实现具体功能。

【设计师设计部分】可以通过以下视频教程进行学习。

http://v.ku6.com/show/eHuNhYr8nd4S7gY7jpwahg...html?st=3_1_2

http://v.17173.com/so-index.html?key=kanzi

http://v.youku.com/v_show/id_XNjU5MTI2ODE2.html?from=y1.7-1.2

【软件工程师编程部分】

1.对于2.8.x版本:

刚创建的Kanzi工程有两个函数,其中kzApplicationConfigure为整个程序的入口,相当于main函数(kanzi把main函数封装在库中了,只提供kzApplicationConfigure出来,kzApplicationConfigure会在创建窗口之前回调)。

如下:

 /**
* A typical application configuration function.
*/
KZ_CALLBACK void kzApplicationConfigure(const struct KzaSystemProperties* systemPropert
ies, struct KzaApplicationProperties* configuration)
{
/* Memory reserved for the application. */
configuration->memoryPoolSize = * * ; //设置使用内存的大小,默认20Mb
configuration->binaryName = "binaries.cfg"; //设置读取kzb的配置文件 /* Platform specific configuration parameters. */
#if defined WIN32 || defined __linux__
configuration->windowProperties.style = KZS_WINDOW_STYLE_DEFAULT;
configuration->windowProperties.width = ;
configuration->windowProperties.height = ;
#endif /* List of available entry points implemented. Implementation is optional. */
/* Application lifetime. */
configuration->onStartup = startup;
configuration->onProjectLoaded = projectLoaded;
configuration->onShutdown = shutdown; /* Application events. */
configuration->onApplicationEvent = applicationEventHandler;
configuration->onWindowEvent = windowEventHandler; /* Input events. */
configuration->onKeyInputEvent = keyInputEventHandler;
configuration->onPointerInputEvent = pointerInputEventHandler; /* Render cycle. */
configuration->onPreRender = preRender;
configuration->onPostRender = postRender;
configuration->onUpdate = update;
}

kzApplicationConfigure函数中可做app的配置,设置内存池大小、窗口大小、窗口类型等,

另外就是在里面注册回调函数,如

configuration->onPostRender = postRender;
为注册每一帧渲染后的回调函数。

2.对于3.2版本则改成了c++的风格,如下:

 #include <kanzi/kanzi.hpp>

 class NApplicaiton : public ExampleApplication
{
protected:
virtual void onConfigure(ApplicationProperties& configuration) KZ_OVERRIDE; virtual void onProjectLoaded() KZ_OVERRIDE; virtual void onShutdown() KZ_OVERRIDE; virtual void onKeyInputEvent(const KzsInputEventKey* inputData) KZ_OVERRIDE; private:
NApplicaiton();
~NApplicaiton(); }; Application* createApplication()
{
return new NApplicaiton();
}

之前在2.8.x版本中的 注册回调函数的方式在3.2版本换成了 重写ExampleApplication的虚函数,其作用还是一样的。同样onProjectLoaded会在资源加载完成后背调用。


Kanzi入门的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  4. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  5. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  6. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  7. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  8. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  9. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

随机推荐

  1. VS 调试

    Vs 单步调试 在vs中的单步调试: 调试重要的几个键: F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点. F5调试状态运行程序,程序执行到有断点的地方会停下来. F10单步执行程序. ...

  2. 杭电ACM 1197

    #include<stdio.h>main(){ int temp,i,t,sum10,sum12,sum16; for(i=1000;i<=9999;i++) { temp=i; ...

  3. ThinkPHP 3.2.3 URL 路由的使用

    ThinkPHP3.2.3 手册中路由的地址是: http://www.kancloud.cn/manual/thinkphp/1706 简单配置实例:在配置文件 config.php 中添加 //路 ...

  4. Android应用字体更改

    首先下载字库 中华字体网 然后在项目的assets目录下建立文件夹fonts.将字体库文件xxx.ttf放入 然后使用下面工具类,自定义控件自己注意添加 public class TypefaceTo ...

  5. C++和C代码互相调用是不可避免的

    C++ 编译器能够兼容C语言发编译方式 C++编译器会优先使用C++ 编译的方式 extern 关键字能强制让C++编译器进行C方式的编译 external “C” { //do C-style co ...

  6. JMeter之JDBC接口测试

    使用jmeter连接数据库后,即可在jmeter中构造对数据库进行增删改查的请求以对数据库进行测试,以下以mysql数据库为例,演示jmeter连接mysql并进程查询操作的步骤. 1.确保mysql ...

  7. 代码规范[iOS]

    一.文件系统 二.代码结构 三.常量  宏 四.布局方式  数据持久化 五.网络 六.类目.延展 七.内存.线程 八.其他 九.版本控制.上线相关 十.附录1(公共库) 十一.附录2(公共类目) 十二 ...

  8. linux下开启防火墙,打开端口

    service iptables start时提示:“iptables: No config file.                                  [WARNING]” 此时打 ...

  9. websocket和swoole

    <head></head><body><script type="text/javascript">var sock = null; ...

  10. QThread

    #ifndef MYTHREAD_H #define MYTHREAD_H #include<QThread> class MyThread : public QThread { Q_OB ...