ftk学习记录(多形式的文章)

ftk学习记录(多形式的文章)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。


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


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


ftk学习记录(多形式的文章)


    假设大家细心一点,能够发现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\n", __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\n", __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这个函数中。这说明系统在初始执行的时候,就会创建一个窗体,并且以后每次单击“创建窗体”按钮的时候,也会在当前的窗体之上添加一个窗体。

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


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




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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117025.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月11日 下午10:00
下一篇 2022年1月11日 下午11:00


相关推荐

  • CSS设置背景颜色透明

    CSS设置背景颜色透明CSS设置背景颜色透明将背景颜色设置为透明,两种方法:方法一:通过background-color和opacity来设置opacity属性参数的不透明度是以数字表示的,从0.0到1.0,完全透明是0.0,完全不透明是1.0,数字越大代表元素越不透明。<divclass=”box01″><p>今天星期三</p></div><divclass=”box02″><p>和上面盒子对比</p

    2022年6月20日
    64
  • Git clone 超级慢

    Git clone 超级慢使用命令:gitclone-br1.13.0https://github.com/tensorflow/models.git克隆GitHub上的一个仓库,但是速度超级慢,最高速度不超过30KB/s解决办法:使用国内镜像网站:github.com.cnpmjs.org,你访问这个网站和访问github.com没有任何区别,但是速度快很多,所以我们可以从这个镜像网站进行克隆仓库。原命令:gitclone-br1.13.0https://github.com/tensorfl

    2022年7月21日
    21
  • linux open详解,Linux系统open函数详解[通俗易懂]

    linux open详解,Linux系统open函数详解[通俗易懂]Linux系统中open函数主要作用就是打开和创建文件,可以根据参数来定制我们需要的文件的属性和用户权限等各种参数,下面良许教程网为大家分享一下Linux系统open函数具体使用方法。一、open函数用来干什么open函数在Linux下一般用来打开或者创建一个文件,我们可以根据参数来定制我们需要的文件的属性和用户权限等各种参数。二、open函数的定义和参数我们首先来看下open函数在Linux下的…

    2022年5月26日
    143
  • .jar中没有主清单属性[通俗易懂]

    .jar中没有主清单属性[通俗易懂].jar中没有主清单属性问题:xxx.jar中没有主清单属性背景:maven项目,springboot服务   IDEA打包,jar包运行出现上述错误解决方案:pom.xml中添加 <build><plugins><plugin><groupId>org.sp…

    2025年9月15日
    7
  • 5G NR SRS (R15)[通俗易懂]

    5G NR SRS (R15)[通俗易懂]一、SRS序列对于SRS序列生成,其延续了LTE中采用的ZC序列,具体公式如下:[参考协议382115.2.2][参考协议382116.4.1.4.2]二、SRS时频资源1.时频资源NR中网络可以为终端配置一个或多个SRS资源集,多个资源集的目的可能是为了上下行多天线预编码,也有可能是为了上下行波束管理。一个SRS资源集内可以包含一个或多个SRS资源,每个SRS资源占…

    2025年8月20日
    7
  • 用nginx部署前端项目

    用nginx部署前端项目前端的默认首页使用 index html 在部署的时候会用到该页面 将打包好的前端页面放在服务器 centos 或 ubuntu 指定路径 如 home project shopping 项目包含 js css 和 html 等 ubuntu 安装 nginxsudosur getinstallng 查看 nginx 是否安装成功 nginx vnginx 安装成功后的位置如下 usr sbin nginx 主程序 etc nginx 配置文件所在

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号