C语言中使用gtk图形包完成页面设计

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

使用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")
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蟹 !

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值