示例#1
0
文件: login.py 项目: nmg1986/imclient
class Login(gtk.Window):
    def __init__(self):
    	gtk.Window.__init__(self)

        self.msg=MsgFactory()	

	self.set_default_size(400,200)
	self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
	self.set_keep_above(True)
	self.set_decorated(False)
	self.connect('key-press-event',self.login)
	self.layout=LayOut(self)
	self.add(self.layout)

	#self.fix=gtk.Fixed()
	#self.fix.set_size_request(400,100)
	#self.layout.put(self.fix,0,50)

	label=gtk.Label("用户名")
	self.layout.put(label,100,55)
	self.username=gtk.Entry()
	self.username.set_has_frame(False)
	self.username.grab_focus()
	self.username.set_size_request(150,25)
	self.layout.put(self.username,150,50)

	label=gtk.Label("密 码")
	self.layout.put(label,100,105)
	self.password=gtk.Entry()
	self.password.set_has_frame(False)
	self.password.set_size_request(150,25)
	self.layout.put(self.password,150,100)

    def run(self):
    	self.show_all()
        self.connector=reactor.connectTCP(HOST,PORT,ClientFactory(self))
        self.transport=self.connector.transport
        reactor.run()
    def login(self,widget,event):
    	if event.keyval == 65293:
	   username=self.username.get_text()
	   password=self.password.get_text()
           self.sendLoginMsg(username,password)
        if event.keyval == 65307:
            self.destroy()
            gtk.main_quit()
    def sendLoginMsg(self,username,password):
           Type='CUSTOM_USER_LOGIN'
           PassWord=md5(password).hexdigest()
           UserName=username
           SerialNumber=0
           msg=self.msg.packMsg(Type,UserName,PassWord,SerialNumber)
           print("Sending login-msg ...")
           self.transport.write(msg)
           print("Done")
           for child in self.layout.get_children():
                self.layout.remove(child)