LCUI:Hello World!程序的实现

来源:互联网 发布:十八亿亩耕地红线知乎 编辑:程序博客网 时间:2024/06/06 00:37

此处的HelloWorld程序就不更新了,请参考LCUI的HelloWorld教程:http://lcui.org/zh-cn/docs/step1.html 。


以下是历史内容:


0.12.6版本,C++类有变动,以下是C和C++代码:

#ifdef __cplusplus// C++版的hello,world程序#include <LCUI_Build.h> #include LC_LCUI_H#include LC_WIDGET_H#include LC_GRAPH_H#include LC_WINDOW_H#include LC_LABEL_Hint main(int argc, char*argv[]) {LCUIApp app( argc, argv );LCUIWindow window;LCUILabel text;LCUIGraph icon;Load_Graph_Icon_LCUI_18x18( icon.getGraph() );window.setTitleText( "测试窗口" );window.resize( Size(320, 240) );window.setTitleIcon( icon );window.addToClientArea( label );text.setAlign( ALIGN_MIDDLE_CENTER, Pos(0,0) );text.setText("<size=24px>Hello,World!\n""<color=255,0,0>世</color>""<color=100,155,0>界</color>""<color=0,0,0>,</color>""<color=0,255,0>你</color>""<color=0,100,155>好</color>""<color=0,0,255>!</color>\n</size>");/* 显示部件 */text.show();window.show();return app.main();}#else // 用LCUI实现hello,world程序#include <LCUI_Build.h>#include LC_LCUI_H #include LC_WIDGET_H #include LC_WINDOW_H#include LC_LABEL_H #include LC_GRAPH_H#include LC_RES_H#include <unistd.h>int main(int argc, char*argv[]) {LCUI_Widget *window, *label;LCUI_TextStyle style;LCUI_Graph pic;LCUI_Init(argc, argv);/* 初始化结构体 */Graph_Init( &pic );TextStyle_Init( &style );/* 载入库中自带的图形数据,这个图形是18x18尺寸的LCUI的图标 */Load_Graph_Icon_LCUI_18x18(&pic);/* 创建部件 */window  = Create_Widget("window");label   = Create_Widget("label");/* 设定窗口标题的文本 */Set_Window_Title_Text(window, "测试窗口");/* 设定窗口标题的图标 */Set_Window_Title_Icon(window, &pic);/* 改变窗口的尺寸 */window->resize(window, Size(320, 240));/* 将窗口客户区作为label部件的容器添加进去 */Window_Client_Area_Add(window, label);/* 居中显示 */label->set_align(label, ALIGN_MIDDLE_CENTER, Pos(0,0));/*  * 设定label部件显示的文本 * <color=R,G,B>文字</color> 表示的是:“文字”将使用自定义颜色 * <size=24px>文字</size> 表示的是:显示的“文字”,大小为24像素 **/Label_Text(label, "<size=24px>Hello,World!\n""<color=255,0,0>世</color>""<color=100,155,0>界</color>""<color=0,0,0>,</color>""<color=0,255,0>你</color>""<color=0,100,155>好</color>""<color=0,0,255>!</color>\n</size>");/* 显示部件 */label->show(label); window->show(window); return LCUI_Main(); /* 进入主循环 */}#endif

效果图:



0.12.5版本,部分功能模块添加了C++类,可以使用C++代码,以下是C++版I的Hello,World示例程序源代码:

// C++版的hello,world程序#include <LCUI_Build.h> #include LC_LCUI_H/* 包含LCUI的相关头文件 */#include LC_WIDGET_H#include <unistd.h>  int main(int argc, char*argv[]) {LCUIapp(argc, argv); LCUIWidgetwindow( "window" ), label( "label" );LCUIGraphicon;  /* 载入LCUI的18x18尺寸的图标 */icon.load.icon.LCUI_18x18();/* 为窗口设定图标 */window.Window.setIcon( icon );/* 改变窗口的尺寸 */window.resize( Size(320, 240) ); /* 设定窗口的标题文本 */window.Window.setTitle( "测试窗口" ); /* 将label部件添加至窗口客户区 */window.Window.addToClientArea( label ); /* 设定label部件的对齐方式 */label.setAlign( ALIGN_MIDDLE_CENTER, Pos(0,0) ); /* 设定label部件显示的文本 */label.Label.setText("Hello,World!\n""<color=255,0,0>世</color><color=100,155,0>界</color>""<color=0,0,0>,</color><color=0,255,0>你</color>""<color=0,100,155>好</color><color=0,0,255>!</color>\n" ); /* 设定字体大小 */label.Label.setFont( 24, NULL );/* 显示这两个部件 */label.show();window.show();/* 进入主循环 */return app.main(); }



0.12.3版本的LCUI的Hello World示例程序源代码:

#include <LCUI_Build.h> /* 包含LCUI的头文件 */#include <unistd.h>int main(int argc, char*argv[]) {    LCUI_Init(argc, argv);    LCUI_Widget *window, *label;    LCUI_Graph pic;    /* 初始化结构体 */    Graph_Init(&pic);    /* 载入库中自带的图形数据,这个图形是18x18尺寸的LCUI的图标 */    Load_Graph_Icon_LCUI_18x18(&pic);    /* 创建部件 */    window  = Create_Widget("window");    label   = Create_Widget("label");        /* 设定窗口标题的文本 */    Set_Window_Title_Text(window, "测试窗口");    /* 设定窗口标题的图标 */    Set_Window_Title_Icon(window, &pic);    /* 改变窗口的尺寸 */    Resize_Widget(window, Size(320, 240));    /* 将窗口客户区作为label部件的容器添加进去 */    Window_Client_Area_Add(window, label);    /* 居中显示 */    Set_Widget_Align(label, ALIGN_MIDDLE_CENTER, 0, 0);    /*      * 设定label部件显示的文本     * <color=R,G,B>文字</color> 表示的是:“文字”将使用自定义颜色      * Set_Label_Text函数使用方法和sprintf函数基本一样,支持控制符     **/    Set_Label_Text(label,                 "Hello World!\n"                "<color=255,0,0>世</color>"                "<color=100,155,0>界</color>"                "<color=0,255,0>你</color>"                "<color=0,100,155>好</color>"                "<color=0,0,255>!</color>\n");         /*      * 改变label部件的字体大小,单位为pixel(像素),不是pt(点数)     * 第三个参数是自定义使用的字体文件,我设定为NULL,表示不使用。     **/    Set_Label_Font(label, 24, NULL);    /* 显示部件 */    Show_Widget(label);    Show_Widget(window);     LCUI_Main(); /* 进入主循环 */     return 0;}


效果图:




LCUI 0.12.1版:

#include "../include/LCUI.h"    void Exit_LCUI(void *in)  {      LCUI_Window *win_p = (LCUI_Window*)in;/* 转换数据类型 */      Close_Window(win_p); /* 调用Close_Window函数关闭窗口 */  }    int main(int argc,char*argv[])  /* 主函数,程序的入口 */  {      LCUI_App     this;        /* LCUI程序 */      LCUI_Widget  *label;      /* 使用指向widget部件的指针 */      LCUI_Window  *main_window;   /* 使用指向窗口的指针 */      int           width, height;       /* 初始化LCUI */      LCUI_Init(&this);       /* 设定默认的字体 */      Set_Default_Font("../fonts/msyh.ttf");         /* 创建一个LCUI程序窗口 */      width  = 180; /* 窗口的宽度 */      height = 110; /* 窗口的高度 */            /* 创建一个窗口,并获取指向窗口数据的指针 */      main_window = Create_Window(&this, width, height);       Set_Window_Title_Text(main_window, "Hello World!");      /* 在窗口内创建一个label部件 */      label = Create_Widget(main_window, LABEL);        /* 更改label部件中的文本内容 */      Set_Label_Text(label, "Hello World! \n测试一下!这是中国字! \nabcdefghijklmnopqrstuvwxyz\n1234567890\n!@#$%^&*()_+{}|:\"<>?");            Show_Widget(label); /* 显示部件 */      Show_Window(main_window); /* 显示窗口 */      /* 将返回键与Exit_LCUI函数关联,当返回键被按下后,程序退出 */      LCUI_Key_Event_Connect(main_window, KEY_ESC, Exit_LCUI, (void*)main_window);      LCUI_Main(&this); /* 进入主循环 */      return 0;  }  

效果图:



老版本的Helloworld:

#include "LCUI_Build.h"#include LCUI_MAIN_H     /* 包含LCUI库的必须头文件 */#include LCUI_WIDGETS_H#include LCUI_FONTS_H #include "all.h"int main(int argc,char *argv[]){LCUI_App app; /* LCUI程序 */Pic_Data pic; /* 用于存储图片数据 */int win_a;    /* 用于保存窗口识别代号 */Lable_Data lable;  /* 用于保存文本标签数据 */int width,height,temp;width = 240; /* 窗口的宽度 */height = 180; /* 窗口的高度 */temp = LCUI_Load_Image("egg.bmp",&pic);  /* 载入图片文件:egg.bmp */if(temp != 0) {return -1;}LCUI_Init(&app);   /* 初始化LCUI */win_a = Create_Window(&app,width,height);  /* 创建一个LCUI程序窗口 */Set_Background_Image(&app,win_a,&pic,STRETCH);  /* 设定窗口背景图为刚刚载入的图片,STRETCH 表示将图片拉伸并铺满整个背景 */Title_Text_Size(&app,win_a,12);    /* 标题栏中的文本的字体大小为12 *//* 在标题栏中添加文本 */Set_Title_Text(&app,win_a,"测试程序 by liuchao35758600"); Create_Lable(&app,win_a,&lable);   /* 创建一个文本标签,如果没有指定位置,默认居中放置 */Lable_Text(&lable,"Hello World!");  /* 标签内容为Hello World! *//* 字体大小为32,使用微软雅黑字体,字体配色为缺省(默认为黑色) */Lable_Font(&lable,32,TTF_MSYH,NULL); Show_Window(&app,win_a);/* 显示窗口 */Close_Window(&app,win_a); /* 关闭窗口 */return 0;}

代码测试结果: