首页 > 其他分享 >ftk学习记(消息框篇)

ftk学习记(消息框篇)

时间:2022-11-23 12:03:20浏览次数:48  
标签:set win button ret 学习 width 框篇 ftk



    上一篇说到了输入框。闲话不多说,首先看结果显示,


ftk学习记(消息框篇)_输入框


    大家看看效果是不是和我们之前说的一样。今天,我们谈一下消息狂。这种消息框其实应用得特别多,有警告用的,有提问的,有信息的,也有提示的。没关系,ftk这边也有demo代码,大家可以学习一下。


#include "ftk.h"

static const char* buttons1[] = {"Yes", NULL};
static const char* buttons2[] = {"Yes", "No", NULL};
static const char* buttons3[] = {"Yes", "No", "Cancel", NULL};
static Ret button_warning(void* ctx, void* obj)
{
int ret = ftk_warning("Warning", "December 31, 2008: patchwork.kernel.org is now available for general use. It is currently only monitoring the Linux Kernel mailing-list, but should be useful to kernel developers in dealing with patches flying across the wire.", buttons1);

ftk_logd("%s: ret = %d\n", __func__, ret);

return RET_OK;
}

static Ret button_info(void* ctx, void* obj)
{
int ret = ftk_infomation("Infomation", "September 19, 2008: mirrors.kernel.org has been flipped over to using our new GeoDNS based bind server (named-geodns). This means that, at the dns query level, our servers will attempt to direct you to the nearest / fastest kernel.org mirror for your request. This means that you no longer have to use mirrors.us.kernel.org or mirrors.eu.kernel.org to generally route you to the right place. This does mean a change to mirrors.kernel.org no longer explicitly pointing at mirrors.us.kernel.org. Additional information on named-geodns will be forth coming, check back here for an addendum soon.", buttons2);

ftk_logd("%s: ret = %d\n", __func__, ret);
return RET_OK;
}

static Ret button_question(void* ctx, void* obj)
{
int ret = ftk_question("Question", "Are you sure to quit?", buttons3);
ftk_logd("%s: ret = %d\n", __func__, ret);

return RET_OK;
}

static Ret button_tips(void* ctx, void* obj)
{
int ret = ftk_tips("The dialog will quit in 3 seconds.");
ftk_logd("%s: ret = %d\n", __func__, ret);

return RET_OK;
}

static Ret button_quit(void* ctx, void* obj)
{
ftk_quit();

return RET_OK;
}

int FTK_MAIN(int argc, char* argv[])
{
int y = 0;
int width = 0;
int height = 0;
FtkWidget* win = NULL;
FtkWidget* button = NULL;

ftk_init(argc, argv);

win = ftk_app_window_create();
width = ftk_widget_width(win);
height = ftk_widget_height(win);

y = (height - 240)/2;
y = y > 0 ? y : 0;

button = ftk_button_create(win, 0, y, width/2, 50);
ftk_widget_set_text(button, "question");
ftk_button_set_clicked_listener(button, button_question, win);

button = ftk_button_create(win, width/2, y, width/2, 50);
ftk_widget_set_text(button, "warning");
ftk_button_set_clicked_listener(button, button_warning, win);

button = ftk_button_create(win, 0, y+60, width/2, 50);
ftk_widget_set_text(button, "info");
ftk_button_set_clicked_listener(button, button_info, win);

button = ftk_button_create(win, width/2, y+60, width/2, 50);
ftk_widget_set_text(button, "tips");
ftk_button_set_clicked_listener(button, button_tips, win);

button = ftk_button_create(win, width/4, y+120, width/2, 50);
ftk_widget_set_text(button, "quit");
ftk_button_set_clicked_listener(button, button_quit, win);

ftk_widget_set_text(win, "message box demo");
ftk_widget_show_all(win, 1);
ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);

ftk_run();

return 0;
}


    代码流程和之前的编写方法一样。从代码中看去,有5个button,每个button都有自己的回调函数。这5个函数分别是button_warning、button_info、button_question、button_tips、button_quit。那回调函数中做了什么呢?


    抛开button_quit,我们只要看其他4个button的回调函数。函数分别是ftk_warning、ftk_info、ftk_question、ftk_tips。除了最后一个ftk_tips,你会发现其他3个函数都是3个参数。参数1为标题,参数2为内容,参数3为button形式。这种消息框中button有多种形式,有两个button的,有三个button的,需要根据具体情况而定。


    欲看效果如何,只好等下一篇文章了。




标签:set,win,button,ret,学习,width,框篇,ftk
From: https://blog.51cto.com/feixiaoxing/5880821

相关文章

  • ftk学习记(进度条篇)
      首先,在开始今天的文章之前,我们还是给朋友们展示一下前面一段代码的运行效果。效果如下,  有兴趣的朋友可以找到这段代码,看一下运行的效果如何。  今天,我们可以......
  • ftk学习记(button篇)
      前面,我们说到了label,这里可以看一下label运行的效果是怎么样的。  大家可以对照上面的结果图,看看我们之前的描述是否正确。  说完了label,可以看看button是怎......
  • ftk学习记(首篇)
        很早之前就知道ftk了,当时主要是因为买了李先静的书,所以知道了这么一个项目。因为对这种gui的代码很感兴趣,所以在我闲暇的时候也会拿来看一看。从整个工程来看,代码......
  • ftk学习记(label篇)
      还是接着上面的一篇博文。之前曾经答应过大家,让大家看一下最简单的ftk程序是怎么运行的。所以,这里我们上传一下图片。  因为还是编辑模式,所以暂时还不能看到图片......
  • MarkDown学习
    Markdown学习标题一级标题#+标题名二级标题##+标题名三级标题###+标题名字体正常字体Hello,World!Hello,World!文字两边加双星号为加粗字体Hello,World!......
  • unity学习笔记03-渲染管线
    图形数据在GPU上经过运算处理,最后显示在显示器上的过程游戏→图形API→cpu→(DRAWCALL)交给GPU→顶点处理→图元装配→光栅化→像素处理→缓存减少DRAWCALL 增加性能O......
  • 本人学习整理了-美妆类目完整直播话术框架流程➕话术提纲➕话术美妆类目完整直播话术
    本人当主播2年和运营1年,自己练习和整理的笔记分享详情内容,包括开场话术、活动话术、产品话术、品牌介绍、建立信任、优惠力度理由、促销、憋单技巧话术、互动话术、转款话......
  • 随想录(机器学习的生产应用)
    【声明:版权所有,欢迎转载,请勿用于商业用途。     从范围上讲,人工智能>机器学习>模式识别。最近机器学习愈演愈烈,特别是深度学习的发展,极大的推动了机器学习的应......
  • Python 深度学习目标检测评价指标
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 技术博客学习
    https://www.cnblogs.com/yangzhou33/archive/2020/11.htmlhttps://yuancheng.work/vue插槽学习https://blog.csdn.net/weixin_41646716/article/details/80450873......