zoukankan      html  css  js  c++  java
  • ftk学习记录(多形式的文章)


    【声明:版权全部。欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】


        在上周末的博客中,我们谈到了list view,今天能够看看效果图怎样。




        假设大家细心一点,能够发现list中的item有点差异,有兴趣的朋友能够思考一下原因是什么,事实上能够代码中看出来的。

    今天,我们聊的是多窗体的问题。

    大多数app。非常少是一个窗体上完毕全部的功能的。

    闲话不多说,先看代码。


    #include "ftk.h"
    
    static void create_app_window(void);
    static Ret button_open_clicked(void* ctx, void* obj)
    {
    	create_app_window();
    
    	return RET_OK;
    }
    
    static Ret button_close_clicked(void* ctx, void* obj)
    {
    	FtkWidget* win = ctx;
    	ftk_logd("%s: close window %s
    ", __func__, ftk_widget_get_text(win));
    	ftk_widget_unref(win);
    
    	return RET_OK;
    }
    
    static int g_index = 0;
    static void on_window_close(void* user_data)
    {
    	g_index--;
    
    	ftk_logd("%s: g_index=%d
    ", __func__, g_index);
    	if(g_index == 0)
    	{
    		ftk_quit();
    	}
    
    	return ;
    }
    
    
    static void create_app_window(void)
    {
    	char title[32] = {0};
    	int width = 0;
    	int height = 0;
    	FtkWidget* win = ftk_app_window_create();
    	FtkWidget* label = NULL;
    	FtkWidget* button = NULL;
    	
    	width = ftk_widget_width(win);
    	height = ftk_widget_height(win);
    
    	button = ftk_button_create(win, 0, height/6, width/3, 50);
    	ftk_widget_set_text(button, "创建窗体");
    	ftk_button_set_clicked_listener(button, button_open_clicked, win);
    
    	button = ftk_button_create(win, 2*width/3, height/6, width/3, 50);
    	ftk_widget_set_text(button, "关闭窗体");
    	ftk_button_set_clicked_listener(button, button_close_clicked, win);
    
    	snprintf(title, sizeof(title), "window%02d", g_index++);
    	label = ftk_label_create(win, width/4, height/2, width/2, 30);
    	ftk_widget_set_text(label, title);
    	
    	ftk_widget_set_text(win, title);
    	ftk_widget_show_all(win, 1);
    	ftk_widget_set_user_data(win, on_window_close, win);
    
    	return;
    }
    
    int main(int argc, char* argv[])
    {
    	ftk_init(argc, argv);
    	
    	create_app_window();
    
    	ftk_run();
    
    	return 0;
    }
    

        从代码中。大家能够发现出现了流程中出现了一个create_app_window这个函数。

    这个函数不仅出如今系统初始的流程中,并且出如今button_open_clicked这个函数中。这说明系统在初始执行的时候,就会创建一个窗体,并且以后每次单击“创建窗体”按钮的时候,也会在当前的窗体之上添加一个窗体。

    当然假设想关闭当前窗体,直接单击“关闭窗体”这个按钮就能够了。


        闲话不多说,下次上效果图。




    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    NYOJ41三个数从小到大排序
    HDUOJ2115I Love This Game
    NYOJ56阶乘因式分解(一)
    NYOJ65另一种阶乘问题
    HDUOJ1234开门人和关门人
    NYOJ74小学生算术
    NYOJ11奇偶数分离
    HDUOJ3980取模运算
    HDUOJ2014 青年歌手大奖赛_评委会打分
    HDUOJ1860 统计字符
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4813299.html
Copyright © 2011-2022 走看看