该项目使用了表格布局,设计图如下:

先将页面做出,在写按钮下的功能

流程如下:

包含头文件

写主函数

环境初始化

创建窗口

设置窗口属性

创建表格布局

将表格布局放到窗口中

创建控件

将控件放到表格布局中去

显示窗口中的所有内容

信号连接

主事件循环

按钮功能如下:

登录按钮:会匹配验证码的行编辑内容和验证码的随机的标签内容进行对比,相同输出验证码正确,否则错误

刷新按钮:刷新整个页面同时验证码随机更新

#include <gtk/gtk.h>
#include <stdio.h>
#include <time.h>
#include <string.h>int i = 0;
char yz[4]="";
GtkWidget* label_yzm_sj;
GtkWidget* entry_yzm;
GtkWidget* entry_id;
GtkWidget* entry_psswd; void do_dl(GtkButton *button,gpointer user_data);
void do_sx(GtkButton* button,gpointer user_data);int main(int argc, char *argv[])
{//环境初始化gtk_init(&argc,&argv);//创建窗口GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);//设置窗口属性gtk_widget_set_size_request(window,600,400);gtk_window_set_resizable(GTK_WINDOW(window),FALSE);gtk_window_set_title(GTK_WINDOW(window),"first");gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER_ALWAYS);//创建一个表格布局GtkWidget* table = gtk_table_new(5,3,TRUE);  //垂直布局//将表格布局放到窗口中去gtk_container_add(GTK_CONTAINER(window),table);//标签的创建与放入GtkWidget* label_title = gtk_label_new("王者荣耀登录器");gtk_table_attach_defaults(GTK_TABLE(table),label_title,1,2,0,1);GtkWidget* label_id = gtk_label_new("账号");gtk_table_attach_defaults(GTK_TABLE(table),label_id,0,1,1,2);GtkWidget* label_pssswd = gtk_label_new("密码");gtk_table_attach_defaults(GTK_TABLE(table),label_pssswd,0,1,2,3);label_yzm_sj= gtk_label_new("验证码");gtk_table_attach_defaults(GTK_TABLE(table),label_yzm_sj,2,3,3,4);//生成一个四位验证码的随机数放上去char yz[4]= "";srand(time(NULL));int i=0;for(i=0;i < 4;++i){yz[i]= rand()%10 + '0';}gtk_label_set_text(GTK_LABEL(label_yzm_sj),yz);按钮的创建与放入GtkWidget* b_dl = gtk_button_new_with_label("登录");gtk_table_attach_defaults(GTK_TABLE(table),b_dl,0,1,4,5);GtkWidget* b_zc= gtk_button_new_with_label("注册");gtk_table_attach_defaults(GTK_TABLE(table),b_zc,1,2,4,5);GtkWidget* b_sx = gtk_button_new_with_label("刷新");gtk_table_attach_defaults(GTK_TABLE(table),b_sx,2,3,4,5);//行编辑的创建与放入entry_id =gtk_entry_new();gtk_table_attach_defaults(GTK_TABLE(table),entry_id,1,2,1,2);entry_psswd =gtk_entry_new();gtk_entry_set_visibility(GTK_ENTRY(entry_psswd),FALSE);gtk_table_attach_defaults(GTK_TABLE(table),entry_psswd,1,2,2,3);entry_yzm =gtk_entry_new();gtk_table_attach_defaults(GTK_TABLE(table),entry_yzm,1,2,3,4);//显示这个窗口所有内容gtk_widget_show_all(window);//信号连接g_signal_connect(window,"destory",G_CALLBACK(gtk_main_quit),NULL);g_signal_connect(b_dl,"pressed",G_CALLBACK(do_dl),NULL);g_signal_connect(b_sx,"pressed",G_CALLBACK(do_sx),NULL);//主事件循环gtk_main();//让这个窗口一直循环刷新,停在这个界面上等待信号return 0;
}
//按钮功能
void do_dl(GtkButton* button,gpointer user_data)
{const char * yzm_old = gtk_label_get_text(GTK_LABEL(label_yzm_sj));const char * yzm=gtk_entry_get_text(GTK_ENTRY(entry_yzm));if(strcmp(yzm_old,yzm) == 0 ){printf("验证码正确\n");gtk_entry_set_text(GTK_ENTRY(entry_yzm),"验证码正确");}else{printf("验证码错误\n");gtk_entry_set_text(GTK_ENTRY(entry_yzm),"验证码错误");}
}
void do_sx(GtkButton* button,gpointer user_data)
{gtk_entry_set_text(GTK_ENTRY(entry_yzm),"");gtk_entry_set_text(GTK_ENTRY(entry_id),"");gtk_entry_set_text(GTK_ENTRY(entry_psswd),"");char yz[4]= "";srand(time(NULL));int i=0;for(i=0;i < 4;++i){yz[i]= rand()%10 + '0';}gtk_label_set_text(GTK_LABEL(label_yzm_sj),yz);}

嵌入式GUI开发:简易版王者荣耀登录器相关推荐

  1. python开发音乐播放器教程_python开发简易版在线音乐播放器示例代码

    在线音乐播放器,使用python的Tkinter库做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过urllib.urlopen模块打开网址,使用Json模块进行数 ...

  2. 小案例:搭建简易版王者荣耀英雄购买商城网页版

    目录 一.网页赏析: 二.代码分三部分: 1.html代码: 2.main.css赏析: 3.初始化reset.css代码: 三.主要素材下载地址: 一.网页赏析: 二.代码分三部分: 1.html ...

  3. JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发简易版银行管理系统(附源码)

    文章目录 JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发简易版银行管理系统 一.系统介绍 二.开发步骤 三.系统展示 四.开发总结 五.数据库相关 ...

  4. 王者荣耀登不进去显示服务器无响应,王者荣耀登录不进去怎么办 王者荣耀版本更新后无法登陆解决方法...

    王者荣耀v1.31.4.25 安卓最新官方版 类型:角色扮演大小:469.3M语言:中文 评分:7.6 标签: 立即下载 很多玩家发现,在更新王者荣耀之后,就没办法登录进去了,要么就是闪退,要么就是加 ...

  5. 登录王者荣耀显示服务器连接错误,王者荣耀登录操作失败怎么回事?请稍后再试解决办法[多图]...

    王者荣耀登录操作失败怎么回事?登录操作失败是最近很多王者荣耀的玩家朋友们遇到过的问题,那么出现这个情况我们要怎么解决呢?不少玩家朋友都不太清楚这个问题该怎么处理,今天小编就将为大家分享关于王者荣耀登录 ...

  6. android王者调不了界面,王者荣耀登录界面怎么改?登录界面更改教程[多图]

    王者荣耀登录界面怎么改?许多玩家都想更改自己登陆的界面,但是都不清楚,下面就让安卓乐园小编为大家带来,登录界面更改教程. 王者荣耀登录界面怎么改? 1.安卓手机打开文件管理,找到根目录下Android ...

  7. Java 语言实现简易版扫码登录

    基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...

  8. c语言小游戏 精简_C语言开发简易版扫雷小游戏

    C 语言开发简易版扫雷小游戏 本文给大家分享的是一个使用 C 语言开发的命令行下的简易版扫雷小游戏, 本身没有什么太 多的技术含量, 只不过是笔者的处女作, 所以还是推荐给大家, 希望对大家学习 C ...

  9. 王者荣耀登录显示换服务器是不是封号,王者荣耀:更改登录画面等于开挂?小心封号!...

    原标题:王者荣耀:更改登录画面等于开挂?小心封号! 玩王者荣耀的小伙伴最近都看到了游戏中一件有意思的事情,就是不少玩家在乐此不疲的修改着自己的登录界面,可能有一部分玩家现在还比较疑惑,这个也能自己更换 ...

最新文章

  1. 微信支付android不弹出支付密码窗口,微信支付没弹出支付窗口
  2. nginx的pid问题
  3. HTML属性——180226
  4. android 访问公共文件夹权限_手机应用获取了储存权限后,可以访问你整个文件吗?...
  5. php客户端连接远程redis,phpredis客户端连接Redis--华为云DCS for Redis使用经验
  6. db2 10.5 64位 linux,db2 10.5 使用列式存储
  7. org.apache.flink.client.program.ProgramInvocationException: Job failed
  8. centos7设置键盘类型_CentOS 7 系统区域(语言)和键盘设置
  9. 微软托管服务器,微软 GitHub 推出新政策,允许托管以安全研究为目的的恶意软件...
  10. 这10个比较好用的服务器管理软件你都知道吗?
  11. Juniper 防火墙JSRP高可用性HA(High Availability) chassis cluster双击冗余
  12. 【IoT】战略:BEM 战略解码 - 好的战略需要好的执行
  13. linux 查看文件最后几行
  14. Arpg战斗系统-技能学习篇
  15. 脑肠轴必读综述 | 肠道菌群是如何影响人的情绪疾病呢?(一)
  16. 对于业务中库存超卖测试
  17. Yura and Developers
  18. mysql男女人数统计查询
  19. 如何在 Windows 中更改桌面位置
  20. Explaining complex machine learning models with LIME

热门文章

  1. inno setup vs NSIS
  2. 安装IAPWS-IF97-OF
  3. 京西古道之--冬日穿越天门山至潭柘寺
  4. Ctrl+c失效问题原因、解决方法及相关拓展
  5. 濉溪一中2021年高考成绩查询,淮北高考成绩查询系统2021
  6. python语言源程序文件扩展名_c语言源程序的扩展名是什么
  7. xvid x264
  8. C语言学习笔记---fseek()函数和ftell()函数
  9. win7抓取计算机窗口存于位图文件,Win7系统电脑如何截图并保存?
  10. 程序设计基础课程设计—位图图像文件缩放