📄 firstgtk.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 + -