⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 firstgtk.c

📁 一个基于GTK+的单词数值计算器
💻 C
字号:
#include<gtk/gtk.h>#include<stdio.h>#include<string.h>#include<stdlib.h>GtkWidget *entry_word_value;int int_to_char(int num,char *buf){	int temp=0;	if(num>=10){		temp=int_to_char(num/10,buf);		*(buf+temp)=(num%10)+'0';		*(buf+temp+1)=0;		}	else{		*buf=num+'0';		*(buf+1)=0;	}		return temp+1;} int word_value(char ch){	if((ch>64)&&(ch<92))	{		return ch-64;		}	else if((ch>96)&&(ch<124))	{		return ch-96;	}else	{		return 0;	}		}int word_compute(const char *str){	int i=0;	int tmp=0;	int sum=0;	int length=0;	length=strlen(str);	if(length>0)	{		for(i=0; i<length; i++)		{			tmp=word_value(str[i]);			if(tmp!=0)			{				sum = sum + tmp;			}else			{				return 0;			}								}			return sum;		}	return 0;}void closeApp(GtkWidget *window, gpointer data){	gtk_main_quit();}void btn_word_compute_clicked(GtkWidget *window, gpointer data){	GtkWidget *dialog;	int tmp=0;	char convert[100];	const char *str=gtk_entry_get_text(GTK_ENTRY((GtkWidget*)data));	tmp=word_compute(str);	if(0==tmp)	{		printf("你输入的英文单词有错\n");	}	else	{		int_to_char(tmp,convert);		gtk_entry_set_text(GTK_ENTRY(entry_word_value),convert);			}	}void btn_file_compute_clicked(GtkWidget *window, gpointer data){	GtkWidget *dialog;	FILE *fp_read;	FILE *fp_write;	char enter='\n';	char prop[80];	int n=0;	int tmp=0;	char ch;	char convert[100];	const char *str=gtk_entry_get_text(GTK_ENTRY((GtkWidget*)data));	if((fp_read=fopen(str,"r"))==NULL)	{		printf("不能打开该文件或文件路径错误!");		fclose(fp_read);		return ;			}	if((fp_write=fopen("result.txt","w"))==NULL)	{		printf("无法创建文件");		fclose(fp_write);		return ;			}	ch=fgetc(fp_read);	while(ch!=EOF)	{		prop[n++]=ch;		ch=fgetc(fp_read);		if('\n'==ch)		{			prop[n]='\0';			tmp=word_compute(prop);			fprintf(fp_write,"%d\n",tmp);			n=0;			ch=fgetc(fp_read);		}	}	fclose(fp_read);	fclose(fp_write);	}int main(int argc, char *argv[]){	GtkWidget *window;	GtkWidget *label_word;	GtkWidget *label_value;	GtkWidget *label_file;	GtkWidget *entry_word_input;	GtkWidget *entry_file_input;	GtkWidget *btn_word_compute;	GtkWidget *btn_file_compute;	GtkWidget *vbox;	GtkWidget *hbox1,*hbox2,*hbox3,*hbox4,*hbox5;//,*hbox6,*hbox7,*hbox8,*hbox9,*hbox10,*hbox11;		gtk_init(&argc,&argv);	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);	gtk_window_set_title(GTK_WINDOW(window),"单词计算器");	gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);	gtk_window_set_default_size(GTK_WINDOW(window),200,200);	g_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(closeApp),NULL);	label_word=gtk_label_new("请输入单词:");		label_value=gtk_label_new("单词值:");		label_file=gtk_label_new("请输入文件路径:");	entry_word_input=gtk_entry_new();	entry_file_input=gtk_entry_new();	entry_word_value=gtk_entry_new();		btn_word_compute=gtk_button_new_with_label("计算");	g_signal_connect(GTK_OBJECT(btn_word_compute),"clicked",GTK_SIGNAL_FUNC(		btn_word_compute_clicked),entry_word_input);	btn_file_compute=gtk_button_new_with_label("计算");	g_signal_connect(GTK_OBJECT(btn_file_compute),"clicked",GTK_SIGNAL_FUNC(		btn_file_compute_clicked),entry_file_input);	vbox=gtk_vbox_new(FALSE,10);	hbox1=gtk_hbox_new(TRUE,10);	hbox2=gtk_hbox_new(TRUE,10);	hbox3=gtk_hbox_new(TRUE,10);	hbox4=gtk_hbox_new(TRUE,10);	hbox5=gtk_hbox_new(TRUE,10);	gtk_box_pack_start(GTK_BOX(hbox1),label_word,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(hbox2),entry_word_input,FALSE, FALSE,7);	gtk_box_pack_start(GTK_BOX(hbox2),btn_word_compute,FALSE, FALSE,3);	gtk_box_pack_start(GTK_BOX(hbox3),label_value,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(hbox3),entry_word_value,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(hbox4),label_file,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(hbox5),entry_file_input,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(hbox5),btn_file_compute,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(vbox),hbox1,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(vbox),hbox2,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(vbox),hbox3,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(vbox),hbox4,FALSE, FALSE,5);	gtk_box_pack_start(GTK_BOX(vbox),hbox5,FALSE, FALSE,5);	gtk_container_add(GTK_CONTAINER(window),vbox);		gtk_widget_show_all(window);	gtk_main();	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -