RazmjenaVjestina
GladePyGTK: Revision 3

= 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()

}}}