发新话题
打印

debian下的网络图形化小程序

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就出现图形化界面了.

TOP

发新话题