当前位置: 技术问答>linux和unix
ubuntu系统下用GTK编写C界面,出现问题了!求解释!
来源: 互联网 发布时间:2017-01-04
本文导语: 我写的一个简易的计算器的界面,当按下‘=’按钮的时候就调用子函数,进行计算, 计算的算法我还没写,可是不知道为什么按下‘=’的时候没有进入子函数,求解释。。。代码如下: #include #include #include #include #...
我写的一个简易的计算器的界面,当按下‘=’按钮的时候就调用子函数,进行计算, 计算的算法我还没写,可是不知道为什么按下‘=’的时候没有进入子函数,求解释。。。代码如下:
#include
#include
#include
#include
#include
struct cal
{
char h;
char hh[30];
struct cal *next;
};
void operating(GtkWidget *text,char ch[])
{
int i=0,j=0;
printf("*******"); /*输出星号,以检验是否进入子函数*/
while(1);
}
void on_clicked(GtkWidget *button,gpointer date)
{
char temp[255];
char *t="=";
strcpy(temp,gtk_entry_get_text(GTK_ENTRY(date)));
if(strcmp(gtk_button_get_label(GTK_BUTTON(button)),t)==0) /*当按下等于按钮的时候进入子函数*/
{
operating(date,temp);
}
strcat(temp,gtk_button_get_label(GTK_BUTTON(button)));
gtk_entry_set_text(GTK_ENTRY(date),temp);
}
void main(int a,char *b[])
{
GtkWidget *window;
GtkWidget *text;
GtkWidget * button[16];
GtkWidget *table;
GtkWidget *table2;
int i=0,j=0,z=0;
char temp[16][2]={{'0',0x00},{'1',0x00},{'2',0x00},{'3',0x00},{'4',0x00},{'5',0x00},{'6',0x00},{'7',0x00},{'8',0x00},{'9',0x00},{'.',0x00},{'=',0x00},{'+',0x00},{'-',0x00},{'*',0x00},{'/',0x00}};
gtk_init(NULL,NULL);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"祥子之简易计算器");
table=gtk_table_new(2,1,FALSE);
table2=gtk_table_new(4,4,FALSE);
text=gtk_entry_new();
gtk_container_add(GTK_ENTRY(window),table);
gtk_table_attach(GTK_TABLE(table),text,0,1,0,1,(GtkAttachOptions)(GTK_FILL|GTK_EXPAND),(GtkAttachOptions)(0),0,0);
gtk_table_attach(GTK_TABLE(table),table2,0,1,1,2,(GtkAttachOptions)(GTK_FILL),(GtkAttachOptions)(GTK_FILL|GTK_EXPAND),0,0);
for(;i