#include <gtk/gtk.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int value=0;
static GtkWidget *value_entry,*world_entry,*file_entry;
void closeApp(GtkWidget *window,gpointer data)
{
gtk_main_quit();
}
void count_button_clicked(GtkWidget *window,gpointer data)
{
char *input_text = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)data));
int length = strlen(input_text);
if(length>0)
{
int i,a;
for(i=0;i<length;i++)
{ if(input_text[i]>=65&&input_text[i]<=90)
{
a=input_text[i] - 'A'+1;
value += a;
}
}
char string[10];
sprintf(string,"%d",value);
strcat(string,"%");
gtk_entry_set_text(GTK_ENTRY(value_entry),string);
value=0;
}
}
void ok_button_clicked(GtkWidget *window,gpointer data)
{
char *input_dir = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)data));
char *input_world = gtk_entry_get_text(GTK_ENTRY(world_entry));
char *input_value = gtk_entry_get_text(GTK_ENTRY(value_entry));
FILE *fp1,*fp2;
char string[50]="\0",dir[100]="\0", string1[100]="\0";
int j=0,i;
int len=strlen(input_dir);
if(0==access(input_dir,F_OK))
{
for(i=0;i<len;i++)
{
if(input_dir[i]=='/')
{
j=i;
}
}
memcpy(dir,input_dir,j+1);
strcat(dir,"result.txt");
if((fp1=fopen(input_dir,"r"))==NULL)
{
printf("file cannot opened\n");
return;
}
if((fp2=fopen(dir,"rb+"))==NULL)
{
printf("file cannot opened!!\n");
}
while(!feof(fp1)) //读取输入的文件
{
if(fgets(string,50,fp1)!=NULL)
{
int length=strlen(string);
int va=0;
for(i=0;i<length;i++)
{
if(string[i]>=65&&string[i]<=90)
{
int a=string[i]-'A'+1;
va += a;
}
}
char str[10];
sprintf(str,"%d",va);
strcat(str,"%");
fprintf(fp2,"%s\n",str);
}
}
fclose(fp1);
fclose(fp2);
}
else
gtk_entry_set_text(GTK_ENTRY(file_entry),"File doesn't exist!!");
}
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *input_label,*value_label,*file_label;
GtkWidget *count_button,*ok_button;
GtkWidget *hbox1,*hbox2,*hbox3,*hbox4,*hbox5,*hbox6,*hbox7,*vbox1,*vbox2,*vbox3,*vbox4,*vbox5,*vbox;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),g_convert("计算单词的值",-1,"UTF-8","GB2312",NULL,NULL,NULL));
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window),250,250);
g_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(closeApp),NULL);
input_label = gtk_label_new(g_convert("请输入单词(全部都用大写):",-1,"UTF-8","GB2312",NULL,NULL,NULL));
value_label = gtk_label_new(g_convert("该单词值:",-1,"UTF-8","GB2312",NULL,NULL,NULL));
file_label = gtk_label_new(g_convert("请输入文件路径:",-1,"UTF-8","GB2312",NULL,NULL,NULL));
world_entry = gtk_entry_new();
value_entry = gtk_entry_new();
file_entry = gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(value_entry),FALSE);
ok_button = gtk_button_new_with_label(g_convert("确定",-1,"UTF-8","GB2312",NULL,NULL,NULL));
count_button = gtk_button_new_with_label(g_convert("计算",-1,"UTF-8","GB2312",NULL,NULL,NULL));
g_signal_connect(GTK_OBJECT(count_button),"clicked",GTK_SIGNAL_FUNC(count_button_clicked),world_entry);
g_signal_connect(GTK_OBJECT(ok_button),"clicked",GTK_SIGNAL_FUNC(ok_button_clicked),file_entry);
hbox1 = gtk_hbox_new(FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox1),input_label,FALSE,FALSE,0);
hbox2 = gtk_hbox_new(FALSE,15);
gtk_box_pack_start(GTK_BOX(hbox2),world_entry,FALSE,FALSE,10);
gtk_box_pack_start(GTK_BOX(hbox2),count_button,FALSE,FALSE,5);
vbox1 = gtk_vbox_new(FALSE,15);
gtk_box_pack_start(GTK_BOX(vbox1),hbox1,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(vbox1),hbox2,FALSE,FALSE,10);
hbox3 = gtk_hbox_new(FALSE,15);
gtk_box_pack_start(GTK_BOX(hbox3),vbox1,FALSE,FALSE,10);
//-------------------------------------------------------------------------------
hbox4 = gtk_vbox_new(TRUE,5);
gtk_box_pack_start(GTK_BOX(hbox4),value_label,TRUE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox4),value_entry,TRUE,FALSE,5);
//------------------------------------------------------------------------------
hbox5 = gtk_hbox_new(FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox5),file_label,FALSE,FALSE,0);
hbox6 = gtk_hbox_new(FALSE,15);
gtk_box_pack_start(GTK_BOX(hbox6),file_entry,FALSE,FALSE,10);
gtk_box_pack_start(GTK_BOX(hbox6),ok_button,FALSE,FALSE,5);
vbox2 = gtk_vbox_new(FALSE,15);
gtk_box_pack_start(GTK_BOX(vbox2),hbox5,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(vbox2),hbox6,FALSE,FALSE,10);
hbox7 = gtk_hbox_new(FALSE,15);
gtk_box_pack_start(GTK_BOX(hbox7),vbox2,FALSE,FALSE,10);
vbox = gtk_vbox_new(FALSE,20);
gtk_box_pack_start(GTK_BOX(vbox),hbox3,FALSE,FALSE,15);
gtk_box_pack_start(GTK_BOX(vbox),hbox4,FALSE,FALSE,10);
gtk_box_pack_start(GTK_BOX(vbox),hbox7,FALSE,FALSE,15);
gtk_container_add(GTK_CONTAINER(window),vbox);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
最新的基于GTK+的单词数值计算器-linux
4星 · 超过85%的资源 需积分: 9 177 浏览量
2012-02-23
13:49:57
上传
评论 1
收藏 302KB ZIP 举报
k1e3v1i4n
- 粉丝: 0
- 资源: 5
最新资源
- 常用工具集参考用于图像等数据处理
- 音乐展示网页、基于Stenography的图像数字水印添加与提取,以及基于颜色矩和Tamura算法的图像相似度评估算法py源码
- 基于EmguCV(OpenCV .net封装),图像数字水印加解密算法的实现,其中包含最低有效位算法,离散傅里叶变换算法+文档书
- 基于matlab+DWT的图像水印项目,数字水印+源代码+文档说明+图片+报告pdf
- (优秀毕业设计)基于python实现的数字图像可视化水印系统的设计与实现,多种数字算法实现+源代码+文档说明+理论演示pdf
- 基于DWT-DCT-SVD和deflate压缩的数字水印方法python源码+Gui界面+演示视频(高分毕业设计)
- 基于matlab实现DWT、DCT、SVD算法数字图像水印可视化系统+GUI界面+文档说明+详细注释(高分毕业设计)
- NCIAE-Data-Structure大一大二笔记
- 学习wireshark笔记
- digital-image-数据可视化笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页