source: sans/utils/bt5/ICPGui/icpgui.py @ 149

Last change on this file since 149 was 149, checked in by ajj, 15 years ago

pygtk interface for ICP

Aim is to combine icp, prepare and xpeek.

Uses python and gtk

  • Property svn:executable set to *
File size: 1.6 KB
Line 
1#!/usr/bin/env python
2
3import sys
4import vte
5import matplotlib
6matplotlib.use('GTK')
7
8from matplotlib.figure import Figure
9from matplotlib.axes import Subplot
10from matplotlib.backends.backend_gtk import FigureCanvasGTK, NavigationToolbar
11
12
13try:
14        import pygtk
15        pygtk.require("2.0")
16       
17except:
18        pass
19
20try:
21        import gtk
22        import gtk.glade
23except:
24        sys.exit(1)
25
26
27
28class appGui:
29        def __init__(self):
30                gladefile = "icpgui.glade"
31                self.windowname = "winMain"
32                self.wTree = gtk.glade.XML(gladefile, self.windowname)
33
34                event_dic = {"on_winMain_destroy" : gtk.main_quit,
35                                         "on_quit1_activate" : gtk.main_quit,
36                                         "on_but_ls_clicked" : self.termsendlscmd,
37                                         "on_but_clear_clicked" : self.termsendclearcmd}
38
39               
40                self.wTree.signal_autoconnect(event_dic)
41
42
43                # Set up terminal widget to run icp
44                self.term  = vte.Terminal()
45                self.term.set_size(80,15)
46                self.termpid  = self.term.fork_command('bash')
47                self.term.set_emulation('xterm')
48                self.term.show()
49
50
51                self.termView = self.wTree.get_widget("hbox1")
52                self.termView.pack_start(self.term, False, False)
53
54                # Set up graphing widget to display xpeek data
55                self.figure = Figure(figsize=(4,4), dpi=72)
56                self.axis = self.figure.add_subplot(111)
57                self.axis.set_xlabel('Motor position')
58                self.axis.set_ylabel('Counts')
59                self.axis.set_title('XPeek')
60                self.axis.grid(True)
61               
62                self.canvas = FigureCanvasGTK(self.figure)
63                self.canvas.show()
64               
65                self.xpeekView = self.wTree.get_widget("hbox1")
66                self.xpeekView.pack_start(self.canvas, True, True)     
67
68        def termsendlscmd(self, widget):
69                self.term.feed_child("ls\n")
70               
71        def termsendclearcmd(self, widget):
72                self.term.feed_child("clear\n")
73               
74               
75
76app = appGui()
77gtk.main()
Note: See TracBrowser for help on using the repository browser.