debian下的网络图形化小程序
首先安装glade-2
apt-get install glade-2
启动glade-2 在菜单栏上选options,出来个"项目选项"卡
添好工程目录:/root/ip/ip1,然后单击"确定"
在调色板上点击窗口图标,出现个窗口
又接着在调色板上点击固定位置图标,在窗口里点击就出来一个相当是个画布的窗口
接着是在画布上添加标签,文本输入,单选按钮,和按钮
把网络界面画好,
然后在菜单栏上点击"保存"和"build"按钮.
接着在/root/ip/ip1/src/下 编辑callbacks.c文件,如下所示:
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include "callbacks.h"
#include "interface.h"
#include "support.h"
int num = 2;
void
on_button1_clicked (GtkButton *button,
gpointer user_data)
{
if(num == 2)
{
GtkWidget * entry1 = lookup_widget(GTK_WIDGET(button), "entry1");
GtkWidget * entry2 = lookup_widget(GTK_WIDGET(button), "entry2");
GtkWidget * entry3 = lookup_widget(GTK_WIDGET(button), "entry3");
GtkWidget * entry4 = lookup_widget(GTK_WIDGET(button), "entry4");
gchar str1[20]="";
gchar str2[20]="";
gchar str3[20]="";
gchar str4[20]="";
strcat(str1,gtk_entry_get_text(GTK_ENTRY(entry1)));
strcat(str2,gtk_entry_get_text(GTK_ENTRY(entry2)));
strcat(str3,gtk_entry_get_text(GTK_ENTRY(entry3)));
strcat(str4,gtk_entry_get_text(GTK_ENTRY(entry4)));
FILE *fp;
fp=fopen("/etc/network/interfaces","w+");
fputs("auto lo\n",fp);
fputs("iface lo inet loopback\n\n",fp);
fputs("auto eth0\n",fp);
fputs("iface eth0 inet static\n",fp);
fputs("address ",fp);
fputs(str1,fp);
fputs("\n",fp);
fputs("netmask ",fp);
fputs(str2,fp);
fputs("\n",fp);
fputs("gateway ",fp);
fputs(str3,fp);
fputs("\n",fp);
fclose(fp);
system("/etc/init.d/networking restart");
gtk_main_quit();
}
if(num == 1)
{
FILE *fp;
fp=fopen("/etc/network/interfaces","w+");
fputs("auto lo\n",fp);
fputs("iface lo inet loopback\n\n",fp);
fputs("auto eth0\n",fp);
fputs("iface eth0 inet dhcp\n",fp);
fclose(fp);
system("/etc/init.d/networking restart");
system("dhclient");
gtk_main_quit();
}
}
void
on_togglebutton1_clicked (GtkButton *button,
gpointer user_data)
{
gtk_main_quit();
}
gboolean
on_netconfig_delete_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
gtk_main_quit();
}
void
on_radiobutton1_pressed (GtkButton *button,
gpointer user_data)
{
num = 1;
GtkWidget * entry1 = lookup_widget(GTK_WIDGET(button), "entry1");
GtkWidget * entry2 = lookup_widget(GTK_WIDGET(button), "entry2");
GtkWidget * entry3 = lookup_widget(GTK_WIDGET(button), "entry3");
GtkWidget * entry4 = lookup_widget(GTK_WIDGET(button), "entry4");
GtkWidget * label1 = lookup_widget(GTK_WIDGET(button), "label1");
GtkWidget * label2 = lookup_widget(GTK_WIDGET(button), "label2");
GtkWidget * entry3 = lookup_widget(GTK_WIDGET(button), "entry3");
GtkWidget * entry4 = lookup_widget(GTK_WIDGET(button), "entry4");
GtkWidget * label1 = lookup_widget(GTK_WIDGET(button), "label1");
GtkWidget * label2 = lookup_widget(GTK_WIDGET(button), "label2");
GtkWidget * label3 = lookup_widget(GTK_WIDGET(button), "label3");
GtkWidget * label4 = lookup_widget(GTK_WIDGET(button), "label4");
gtk_widget_set_sensitive(entry1,FALSE);
gtk_widget_set_sensitive(entry2,FALSE);
gtk_widget_set_sensitive(entry3,FALSE);
gtk_widget_set_sensitive(entry4,FALSE);
gtk_widget_set_sensitive(label1,FALSE);
gtk_widget_set_sensitive(label2,FALSE);
gtk_widget_set_sensitive(label3,FALSE);
gtk_widget_set_sensitive(label4,FALSE);
}
void
on_radiobutton2_pressed (GtkButton *button,
gpointer user_data)
{
num = 2;
GtkWidget * entry1 = lookup_widget(GTK_WIDGET(button), "entry1");
GtkWidget * entry2 = lookup_widget(GTK_WIDGET(button), "entry2");
GtkWidget * entry3 = lookup_widget(GTK_WIDGET(button), "entry3");
GtkWidget * entry4 = lookup_widget(GTK_WIDGET(button), "entry4");
GtkWidget * label1 = lookup_widget(GTK_WIDGET(button), "label1");
GtkWidget * label2 = lookup_widget(GTK_WIDGET(button), "label2");
GtkWidget * label3 = lookup_widget(GTK_WIDGET(button), "label3");
GtkWidget * label4 = lookup_widget(GTK_WIDGET(button), "label4");
gtk_widget_set_sensitive(entry1,TRUE);
gtk_widget_set_sensitive(entry2,TRUE);
gtk_widget_set_sensitive(entry3,TRUE);
gtk_widget_set_sensitive(entry4,TRUE);
gtk_widget_set_sensitive(label1,TRUE);
gtk_widget_set_sensitive(label2,TRUE);
gtk_widget_set_sensitive(label3,TRUE);
gtk_widget_set_sensitive(label4,TRUE);
}
cd .././autogen.sh
make
结果在/root/ip/ip1/src/ 出现ip1命令
然后执行./ip1就出现图形化界面了.