博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ftk学习记(输入框篇)
阅读量:4348 次
发布时间:2019-06-07

本文共 2375 字,大约阅读时间需要 7 分钟。

【 声明:版权全部。欢迎转载。请勿用于商业用途。

 联系信箱:feixiaoxing @163.com】

    昨天讲了进度条,我们还是看看它的运行效果是怎么样的。截图例如以下,

    进度条使用的情况还是比較多的。只是有一种控件,我们遇到的机会很多其它。那就是输入框。非常难想象,没有输入框的gui是什么样的。

在网上购物或者买车票的时候。非常重要的一条就是输入自己的账户、password信息。所以说,没有输入的话,这些app都无法使用了。相同,我们能够看一下ftk下的输入框demo代码是什么样的。

#include "ftk.h"static Ret button_quit_clicked(void* ctx, void* obj){	ftk_quit();	return RET_OK;}static Ret ftk_digit_only_filter(void* ctx, void* data){	FtkEvent* event = data;	if(event->type == FTK_EVT_KEY_UP || event->type == FTK_EVT_KEY_DOWN)	{		int code = event->u.key.code;		if(code >= FTK_KEY_0 && code <= FTK_KEY_9)		{			return RET_OK;		}		else if(code == FTK_KEY_UP 			|| code == FTK_KEY_DOWN			|| code == FTK_KEY_LEFT			|| code == FTK_KEY_RIGHT			|| code == FTK_KEY_BACKSPACE			|| code == FTK_KEY_DELETE			|| code == FTK_KEY_HOME			|| code == FTK_KEY_END			|| code == FTK_KEY_TAB)		{			return RET_OK;		}		return RET_REMOVE;	}	return RET_OK;}int FTK_MAIN(int argc, char* argv[]){	int width = 0;	int height = 0;	FtkWidget* win = NULL;	FtkWidget* button = NULL;	FtkWidget* entry  = NULL;	ftk_init(argc, argv);	win = ftk_app_window_create();	width = ftk_widget_width(win);	height = ftk_widget_height(win);	entry = ftk_entry_create(win, 10, 30, ftk_widget_width(win) - 20, 30);	ftk_entry_set_text(entry, "1234(digit only)");	ftk_widget_set_event_listener(entry, ftk_digit_only_filter, NULL);	entry = ftk_entry_create(win, 10, 80, ftk_widget_width(win) - 20, 30);	ftk_entry_set_text(entry, "Single line editor, that means you can input a one line only.");		entry = ftk_entry_create(win, 10, 130, ftk_widget_width(win) - 20, 30);	ftk_entry_set_text(entry, "Single line editor, 也就是说你仅仅能输入一行文字.");		button = ftk_button_create(win, width/4, 3*height/4, width/2, 60);	ftk_widget_set_text(button, "quit");	ftk_button_set_clicked_listener(button, button_quit_clicked, win);	ftk_window_set_focus(win, button);	ftk_widget_set_text(win, "entry demo");	ftk_widget_show_all(win, 1);	ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);	ftk_run();	return 0;}

    这段74行的代码结构还是比較清晰的。除了一如既往的ftk_init和ftk_run两个函数外,大家还看到了3个entry的创建和1个button的创建。button的内容。之前已经讨论过,这里略过不谈。

我们仅仅关注entry的内容。

    3个entry中,后两个差点儿相同,仅仅有第1个有些区别。

我们看到,第1个entry除了正常的属性设置之外。另一个回调函数。也就是ftk_digit_only_filter。这个函数告诉系统,除了数字和一些方向键、控制键之外,其它的输入统统忽略。

通俗一点说,这个entry中仅仅认数字。其它两个entry则没什么限制。输入字母、符号都没有什么问题。

    好了。今天就说这么多。

想看效果怎样。敬请期待下一篇博文吧。

转载于:https://www.cnblogs.com/brucemengbm/p/7131545.html

你可能感兴趣的文章
关于render函数的总结
查看>>
JavaScript 小刮号
查看>>
BZOJ USACO 银组 水题集锦
查看>>
Android为TV端助力 Linux命令查看包名类名
查看>>
【zabbix】自动注册,实现自动发现agent并添加监控(agent不需要任何配置)
查看>>
[简单到爆]eclipse-jee-neon的下载和安装
查看>>
vector
查看>>
Redis学习之set类型总结
查看>>
栈和队列
查看>>
CSS2-3常见的demo列子总结一
查看>>
XML & JSON---iOS-Apple苹果官方文档翻译
查看>>
数据挖掘之功能
查看>>
2018-07-13E-R图设计数据库+三大范式+修改用户密码+分配用户权限
查看>>
移动广告行业的复苏
查看>>
Cookie机制,session机制
查看>>
nginx配置错误
查看>>
47 【golang】mysql操作
查看>>
Using ARITHABORT with LLBLGen
查看>>
增量模型与快速模型的异同。
查看>>
Hanoi双塔问题(简单的枚举)
查看>>