Last Updated or created 2023-02-14
THIS IS A WORK IN PROGRESS ! .. Updates follow
UPDATE: Found a glade project from 2002
https://www.henriaanstoot.nl/2002/02/20/reverse-engineering-a-alpha-ticker-led-scoller/
The goal of this project is to have a raspberry-pi with a screen wich shows network information.
It wil be using a battery, touchscreen .. maybe some status leds.
When debugging network issues we want to have information when/if/how a network port works on our switches.
It should show:
- dhcp ip
- gateway
- can access internet?
- speedtest
- detect if vlan tagged network packets are present on the port?
- icmp test
- list of detected nearby hosts?
A long time ago i played with glade and C / Perl.
But i’d rather use python so i’m looking into glade/python combi for this little project.
Glade is a gnome/GTK user interface RAD tool. (Rapid Application Development)
i’ve used zenity and yad before to create simple gui’s for bash scripts, these where only for quick and dirty solutions. (See other posts)
Glade is a far better solution, but a little harder to use.
Below is a little framework i started with
Python script
import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk class Handler: def onDestroy(self, *args): Gtk.main_quit() def on_firstbutton_clicked(self, button): print("Ping test") builder = Gtk.Builder() builder.add_from_file("mytest.glade") builder.connect_signals(Handler()) window = builder.get_object("Main") window.show_all() Gtk.main()
Glade file
<?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.38.2 --> <interface> <requires lib="gtk+" version="3.20"/> <object class="GtkWindow" id="Main"> <property name="can-focus">False</property> <property name="title" translatable="yes">Networktool</property> <property name="default-width">440</property> <property name="default-height">250</property> <property name="icon-name">network-wired</property> <child> <object class="GtkFixed" id="fixed1"> <property name="visible">True</property> <property name="can-focus">False</property> <child> <object class="GtkButton" id="firstbutton"> <property name="label" translatable="yes">Ping test</property> <property name="width-request">100</property> <property name="height-request">16</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">True</property> <signal name="clicked" handler="on_firstbutton_clicked" swapped="no"/> </object> <packing> <property name="x">56</property> <property name="y">40</property> </packing> </child> <child> <object class="GtkButton" id="speedtest"> <property name="label" translatable="yes">Speed test</property> <property name="width-request">100</property> <property name="height-request">16</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">True</property> </object> <packing> <property name="x">56</property> <property name="y">89</property> </packing> </child> <child> <object class="GtkTextView"> <property name="width-request">179</property> <property name="height-request">166</property> <property name="visible">True</property> <property name="can-focus">True</property> </object> <packing> <property name="x">222</property> <property name="y">36</property> </packing> </child> </object> </child> </object> </interface>
Which is generated using the Glade designer
When running you get below screen
Old glade program (2003)