RazmjenaVjestina
GladePyGTK: Revision 5
Glade i PyGTKNa NSND u Moravicama pokazivao sam nešto oko korištenja Glade-a i pygtk za polu-rapid development GTK GUI aplikacija. Primjer je bio mali app koji šalje sms preko Vip Web SMS stranice. Glade file možete naći ovdje: "Python kod slijedi: import urllib2 import urllib import cookielib import gobject import pygtk pygtk.require('2.0') import pango import gtk import gtk.glade class HellowWorldGTK: """Main GTK not-thread""" def __init__(self): #set the glade file self.gladefile = "vip.glade" self.wTree = gtk.glade.XML(self.gladefile) dic = {"on_send_button_clicked" : self.send_sms, "on_reset_button_clicked" : self.send_sms, #"on_VipSMS_key_press_event" : self.update_counter, "on_VipSMS_destroy" : gtk.main_quit } self.wTree.signal_autoconnect(dic) view = self.wTree.get_widget('message_text') buffer = view.get_buffer() buffer.connect('changed', self.update_counter) def update_counter(self,widget): baf = self.wTree.get_widget('message_text') buffer = baf.get_buffer() lenght = buffer.get_char_count() lenght = 135 - lenght label = self.wTree.get_widget('count_label') label.set_text(str(lenght)) def send_sms(self,widget): global cj opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) params = urllib.urlencode({'userRequestURL':\ 'http%3A%2F%2Fwww.vip.hr%2Fsp%2Fd_sendSMS%3F' , \ 'serviceRegistrationURL':_ , 'level': '30' , 'SetMsisdn' : 'true' ,\ 'serviceOID' : '2000358', 'UserID' : 'user_name', 'Password' : 'password'}) bla = opener.open('http://webauth.vip.hr/vasmpauth/ProcessLoginServlet',params) #print bla.read() message = self.wTree.get_widget('message_text') message = message.get_buffer() message = message.get_text(message.get_start_iter(),message.get_end_iter()) prefix = self.wTree.get_widget('cell_prefix') prefix = prefix.get_child() prefix = prefix.get_text() number = self.wTree.get_widget('cell_number') number = number.get_text() phoneno = str(number) size_diff = str(260-len(message)) data = urllib.urlencode({'formflag' : 'true', 'netpref' : prefix,\ 'phoneno' : phoneno, 'charleft' : size_diff, 'message582' : message , \ 'reply_to_mobile' : _}) #print data sender = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) send = opener.open('http://www.vip.hr/sp/d_sendSMS?',data) inpu = send.read() #print 'Preostalo poruka: ' + str(inpu.split('poslati: ')[1"<http://synan.rilinux.hr/code/vip.glade]>.split('<',1)[0]) widg = self.wTree.get_widget('status_label') widg.set_text('Preostalo poruka: ' + str(inpu.split('poslati:\ ')[1].split('<',1)[0])) if __name__ == "__main__": cj = cookielib.CookieJar() hwg = HellowWorldGTK() gtk.main() original Dec 14 5:39am |