使用gtk包完成页面设计实现(实战项目),带部分数据库代码。使用Ubuntu操作系统,sqlite数据库。
效果:
这里采用的是一个2:1的卡片式设计,比较美观,管理员账号密码为指定账号密码,在查询,充值,注册以及注销页面的按钮必须绑定数据库的操作。下面为几个场景的部分实例图片:



需注意,在本案例中,注销账户时并没有显示余额,应参照查询的数据库代码,将注销页面的用户余额显示在场景中,以便商家进行卡内余额退还。
#include <stdio.h>
#include "string.h"
#include "gtk/gtk.h"
#include "sqlite3.h"
GtkWidget * window ;//定义全局
GtkWidget * window01;
GtkWidget * find_Scene;
GtkWidget * add_Scene;
GtkWidget * post_Scene;
GtkWidget * delate_Scene;
GtkWidget * label01;
GtkWidget * label_userName;
GtkWidget * entry_userName;
GtkWidget * label_passWord;
GtkWidget * entry_passWord;
GtkWidget * button01 ;
GtkWidget * label_info ;
GtkWidget * button01_01 ;
GtkWidget * button01_02 ;
GtkWidget * button01_03 ;
GtkWidget * button01_04 ;
GtkWidget * entry_addid;
GtkWidget * entry_addmoney;
GtkWidget * label_add_cur;
// GtkWidget * TEXT_ID;
GtkWidget * entry_find;
GtkWidget * label_money;
GtkWidget * entry_delate;
GtkWidget * label_del_money;
void haha(GtkButton * button,gpointer user_data)
{
printf("++++++++++\n");
const gchar * text_user = gtk_entry_get_text(GTK_ENTRY(entry_userName));
const gchar * text_pwd = gtk_entry_get_text(GTK_ENTRY(entry_passWord));
printf("%s\n",text_user);
printf("%s\n",text_pwd);
if(strcmp(text_user,"141")==0&&strcmp(text_pwd,"666")==0)
{
gtk_widget_hide_all(window);
gtk_widget_show_all(window01);
}
else{
gtk_label_set_text(GTK_LABEL(label_info),"用户名密码错误");
gtk_entry_set_text(GTK_ENTRY(entry_userName),"");
gtk_entry_set_text(GTK_ENTRY(entry_passWord),"");
}
}
void open_btn(GtkButton * button,gpointer user_data)
{
int a = (int)user_data;
if(a==0){
gtk_widget_hide_all(window01);
gtk_widget_show_all(find_Scene);
}else if(a == 1){
gtk_widget_hide_all(window01);
gtk_widget_show_all(add_Scene);
}else if(a == 2){
gtk_widget_hide_all(window01);
gtk_widget_show_all(post_Scene);
}else if(a == 3){
gtk_widget_hide_all(window01);
gtk_widget_show_all(delate_Scene);
}
}
void exit_btn(GtkButton * button,gpointer user_data)
{
int b = (int)user_data;
if(b==0){
gtk_widget_hide_all(find_Scene);
gtk_widget_show_all(window01);
}else if(b == 1){
gtk_widget_hide_all(add_Scene);
gtk_widget_show_all(window01);
}else if(b == 2){
gtk_widget_hide_all(post_Scene);
gtk_widget_show_all(window01);
}else if(b == 3){
gtk_widget_hide_all(delate_Scene);
gtk_widget_show_all(window01);
}
}
void addFun(GtkButton * button,gpointer user_data)
{
//打开数据库
sqlite3 *db;
char *errmsg=NULL;
int ret=sqlite3_open("BS.db",&db);
if(ret !=SQLITE_OK)
{
perror("sqlite3_open")

本文介绍了一个使用GTK包完成的页面设计实战项目,该项目集成了SQLite数据库操作,包括查询、充值、注册和注销等功能。文章详细展示了如何在Ubuntu操作系统下,通过C语言与GTK工具包结合,实现美观的卡片式设计界面,并与数据库交互,适用于管理员账号管理场景。
最低0.47元/天 解锁文章
907

被折叠的 条评论
为什么被折叠?



