well i got it working somehow.have attached it.can it be made more elegant
than my code?I have made a similar program for serial port instead of
reading from file it reads from serial port.What if the serial port stops
sending data,i want a GUI error message and control back.the other file has
also been attached(serial one which requires more help).Also i need to
create within this gui another entry which sends data the user enters as and
when he wants to,but the problem is while loop takes contol.
#!/usr/bin/env python
#This program will attempt to read a line from a file using a GUI
import pygtk
pygtk.require('2.0')
import gtk
import re
class Beta:
f=open('/home/nipun/1.txt')
vars = re.compile('^(\d+\.?\d*)a(\d+\.?\d*)b(\d+\.?\d*)c(\d+\.?\d*)d(.*)')
#f is a pointer used to reference file
def callback(self,widget,data=None):
print "alpha"
s=hello.f.readline()
m = re.search(hello.vars, s) # Run the regexp on the packet
var1 = m.group(1) # take out the values
var2 = m.group(2)
var3 = m.group(3)
var4 = m.group(4)
hello.entry.set_text(var1)
hello.entry1.set_text(var2)
hello.entry2.set_text(var3)
hello.entry3.set_text(var4)
def delete_event(self,widget,event,data=None):
print "Delete event has occcured"
gtk.main_quit()
return False
def __init__(self):
self.window=gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("File read GUI")
self.window.connect("delete_event",self.delete_event)
self.window.set_border_width(10)
self.box1=gtk.HBox(False,0)
self.window.add(self.box1)
self.button=gtk.Button("Read a line")
self.button.connect("clicked",self.callback)
self.box1.pack_start(self.button,True,True,0)
self.button.show()
self.entry=gtk.Entry()
self.entry1=gtk.Entry()
self.entry2=gtk.Entry()
self.entry3=gtk.Entry()
self.box1.pack_start(self.entry,True,True,0)
self.box1.pack_start(self.entry1,True,True,0)
self.box1.pack_start(self.entry2,True,True,0)
self.box1.pack_start(self.entry3,True,True,0)
self.entry.show()
self.entry1.show()
self.entry2.show()
self.entry3.show()
self.box1.show()
self.window.show()
def main(self):
gtk.main()
if __name__=="__main__":
hello=Beta()
hello.main()
#!/usr/bin/env python
#This program will attempt to read a line from a file using a GUI
import pygtk
pygtk.require('2.0')
import gtk
import re
import serial
class Beta:
ser=serial.Serial()
ser.port="/dev/ttyUSB0"
ser.baudrate=9600
ser.open()
vars = re.compile('^(\d+\.?\d*)a(\d+\.?\d*)b(\d+\.?\d*)c(\d+\.?\d*)d(.*)')
#f is a pointer used to reference file
def callback(self,widget,data=None):
print "alpha"
i=0
while i<3:
s=hello.ser.readline()
hello.ser.write("nipun\n")
m = re.search(hello.vars, s) # Run the regexp on the packet
var1 = m.group(1) # take out the values
var2 = m.group(2)
var3 = m.group(3)
var4 = m.group(4)
hello.entry.set_text(var1)
hello.entry1.set_text(var2)
hello.entry2.set_text(var3)
hello.entry3.set_text(var4)
hello.ser.write("nipun\n")
i=i+1
def delete_event(self,widget,event,data=None):
print "Delete event has occcured"
gtk.main_quit()
return False
def __init__(self):
self.window=gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("File read GUI")
self.window.connect("delete_event",self.delete_event)
self.window.set_border_width(10)
self.box1=gtk.HBox(False,0)
self.window.add(self.box1)
self.button=gtk.Button("Read a line")
self.button.connect("clicked",self.callback)
self.box1.pack_start(self.button,True,True,0)
self.button.show()
self.entry=gtk.Entry()
self.entry1=gtk.Entry()
self.entry2=gtk.Entry()
self.entry3=gtk.Entry()
self.box1.pack_start(self.entry,True,True,0)
self.box1.pack_start(self.entry1,True,True,0)
self.box1.pack_start(self.entry2,True,True,0)
self.box1.pack_start(self.entry3,True,True,0)
self.entry.show()
self.entry1.show()
self.entry2.show()
self.entry3.show()
self.box1.show()
self.window.show()
def main(self):
gtk.main()
if __name__=="__main__":
hello=Beta()
hello.main()
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/