= Glade i PyGTK =
Na NSND u Moravicama pokazivao sam nešto oko korištenja Glade-a i pygtk za[BR]
polu-rapid development GTK GUI aplikacija. Primjer je bio mali app koji šalje[BR]
sms preko Vip Web SMS stranice. Glade file možete naći ovdje:[BR]
http://synan.rilinux.hr/code/vip.glade[BR]
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.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()
}}}