LCUI:Hello World!程序的实现

此处的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_H

int 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[]) 
{
	LCUI		app(argc, argv); 
	LCUIWidget	window( "window" ), label( "label" );
	LCUIGraph	icon; 
	 
	/* 载入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:Hello World!程序的实现_第1张图片



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;  
}  

效果图:

LCUI:Hello World!程序的实现_第2张图片


老版本的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;
}



代码测试结果:

LCUI:Hello World!程序的实现_第3张图片


你可能感兴趣的:(image,测试,null,ttf,fonts)