Chinaunix首页 | 论坛 | 博客
  • 博客访问: 744219
  • 博文数量: 741
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-18 11:18
文章分类

全部博文(741)

文章存档

2011年(1)

2008年(740)

我的朋友

分类:

2008-09-18 11:24:58

以下程序想要得到一个文件选择界面,编译和运行均不出错,但是最终效果不对。
错误效果在于,后面选择的文件总会覆盖前面选择的文件,从而不能得到前几次
选择的文件,只能得到最后一次选择的文件。附件是该程序的界面图。
请各位大侠指教。不胜感激。
#include
#include
GtkWidget *filew;
void tof(GtkWidget *widget,GtkWidget *entry)
{
g_print("1111\n");
gtk_entry_set_text(GTK_ENTRY(entry),gtk_file_selection_get_filename(GTK_FILE_SELECTION(filew)));
gtk_widget_hide(GTK_WIDGET(filew));
g_print("222\n");
}
void show_fs(GtkWidget *widget,GtkWidget *entry)
{
g_print("%d\n",entry);
gtk_widget_show(filew);
g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filew)->ok_button),"clicked",G_CALLBACK(tof),entry);
}
void des_event(GtkWidget *widget,GtkWidget *filew)
{
gtk_widget_hide(GTK_WIDGET(filew));
}
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *table;
GtkWidget *label;
GtkWidget *entry[10];
GtkWidget *button[10];
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"HSQ");/*宏模型生成器*/
g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
filew=gtk_file_selection_new("File selection");
g_signal_connect(G_OBJECT(filew),"destroy",G_CALLBACK(des_event),NULL);
g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filew)->cancel_button),"clicked",G_CALLBACK(des_event),filew);
table=gtk_table_new(7,4,FALSE);
gtk_container_add(GTK_CONTAINER(window),table);
gtk_widget_show(table);
label=gtk_label_new("Import System Matrices");
gtk_table_attach(GTK_TABLE(table),label,0,3,0,1,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(label);
label=gtk_label_new("Mass matrix");
gtk_table_attach(GTK_TABLE(table),label,0,1,1,2,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(label);
entry[0]=gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(entry[0]),FALSE);
gtk_table_attach(GTK_TABLE(table),entry[0],1,2,1,2,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(entry[0]);
button[0]=gtk_button_new_with_label("...");
gtk_table_attach(GTK_TABLE(table),button[0],2,3,1,2,GTK_SHRINK,GTK_SHRINK,3,0);
gtk_widget_show(button[0]);
g_signal_connect(G_OBJECT(button[0]),"clicked",G_CALLBACK(show_fs),entry[0]);

label=gtk_label_new("Stiffness matrix");
gtk_table_attach(GTK_TABLE(table),label,0,1,2,3,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(label);
entry[1]=gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(entry[1]),FALSE);
gtk_table_attach(GTK_TABLE(table),entry[1],1,2,2,3,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(entry[1]);
button[1]=gtk_button_new_with_label("...");
gtk_table_attach(GTK_TABLE(table),button[1],2,3,2,3,GTK_SHRINK,GTK_SHRINK,3,0);
gtk_widget_show(button[1]);
g_signal_connect(G_OBJECT(button[1]),"clicked",G_CALLBACK(show_fs),entry[1]);

label=gtk_label_new("Node vector");
gtk_table_attach(GTK_TABLE(table),label,0,1,3,4,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(label);
entry[2]=gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(entry[2]),FALSE);
gtk_table_attach(GTK_TABLE(table),entry[2],1,2,3,4,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(entry[2]);
button[2]=gtk_button_new_with_label("...");
gtk_table_attach(GTK_TABLE(table),button[2],2,3,3,4,GTK_SHRINK,GTK_SHRINK,3,0);
gtk_widget_show(button[2]);
g_signal_connect(G_OBJECT(button[2]),"clicked",G_CALLBACK(show_fs),entry[2]);

label=gtk_label_new("Input vector");
gtk_table_attach(GTK_TABLE(table),label,0,1,4,5,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(label);
entry[3]=gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(entry[3]),FALSE);
gtk_table_attach(GTK_TABLE(table),entry[3],1,2,4,5,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_show(entry[3]);
button[3]=gtk_button_new_with_label("...");
gtk_table_attach(GTK_TABLE(table),button[3],2,3,4,5,GTK_SHRINK,GTK_SHRINK,3,0);
gtk_widget_show(button[3]);
g_signal_connect(G_OBJECT(button[3]),"clicked",G_CALLBACK(show_fs),entry[3]);
gtk_widget_show(window);
gtk_main();
return 0;
}      
--------------------next---------------------

阅读(264) | 评论(0) | 转发(0) |
0

上一篇:欢迎阅读我的文章

下一篇:2008-7-27 19:50

给主人留下些什么吧!~~