#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
GtkEntry *text_entry;
gint num = 0;
char buf[5];
void enter_callback( GtkWidget *widget, gpointer entry )
{
const gchar *entry_text;
// 获得文本内容
entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
printf("Entry contents: %s\n", entry_text);
}
int deal_pressed(GtkButton *button, gpointer user_data)
{
char x;int i,s;
char op;
int a,b;
// 获得按钮的文本信息
const gchar *text = gtk_button_get_label( button );
// g_print() 相当于C语言的 printf(), gchar相当于char
const char *str = gtk_entry_get_text(text_entry);
int slen = strlen(str);
int tlen = strlen(text);
char *newstr = malloc(slen + tlen + 1);
if(*text == 'C')
{
gtk_entry_set_text(text_entry, "");//清空
return 0;
}
if (newstr != NULL)
{
strcpy(newstr, str);
strcat(newstr, text);
gtk_entry_set_text(text_entry, newstr);
}
sscanf(newstr,"%d%c%d",&a,&op,&b);
if(op == '+' && newstr[3] =='=')
newstr[4] = (a+b)+'0';
// gtk_entry_set_text(text_entry, newstr);
else
if(op == '-' && newstr[3] =='=')
newstr[4] = (a-b)+'0';
//gtk_entry_set_text(text_entry, newstr);
else
if(op == '*' && newstr[3] =='=')
newstr[4] = (a*b)+'0';
else
if(op == '/' && newstr[3] =='=')
newstr[4] = (a/b)+'0';
gtk_entry_set_text(text_entry, newstr);