Create a Simple GUI
The Python
The first thing is to import some libraries needed and make the file so it can be an executable.
#!/usr/bin/env python import gtk import gladevcp.makepins from gladevcp.gladebuilder import GladeBuilder import hal
The next thing is to create the main class needed.
class gui_one(object):
# This connects with the signal created when the main window is destroyed
def on_window1_destroy(self, widget, data=None):
print "quit with cancel"
gtk.main_quit()
# This connects with the menu item signal when we press the quit button
def on_gtk_quit_activate(self, menuitem, data=None):
print "quit from menu"
gtk.main_quit()
# This section is the init section
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file("gui1.glade")
self.halcomp = hal.component("gui1")
self.builder.connect_signals(self)
self.window = self.builder.get_object("window1")
self.window.show()
panel = gladevcp.makepins.GladePanel( halcomp, "gui1.glade", self.builder, None)
self.halcomp.ready()
In the same directory as the gui1.glade file was saved save the following python code as gui1.py.
#!/usr/bin/env python
import gtk
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal
class gui_one(object):
def on_window1_destroy(self, widget, data=None):
print "quit with cancel"
gtk.main_quit()
def on_gtk_quit_activate(self, menuitem, data=None):
print "quit from menu"
gtk.main_quit()
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file("gui1.glade")
halcomp = hal.component("gui01")
self.builder.connect_signals(self)
self.window = self.builder.get_object("window1")
self.window.show()
panel = gladevcp.makepins.GladePanel( halcomp, "gui1.glade", self.builder, None)
halcomp.ready()
if __name__ == "__main__":
app = gui_one()
gtk.main()
To run our example change the properties of gui1.py to execute by right clicking on the file name and select properties.
Start an Axis simulator then run gui1.py in a terminal. It doesn’t look like much but if you click on the E-Stop button you can see it change in the Axis window as well. Just one little thing but such a huge thing it is to communicate to LinuxCNC from our little GUI.
We can also see some messages from LinuxCNC in our terminal window when we press the E-Stop button.
Now when you close the Axis screen you can see our GUI closes also.
Next up adding some content to our glade file…