1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| class WinDialogPassword__:
"""
Describe the Window which asks a password to continue
"""
def __init__(self, title, parentWin):
"""
Constructor of the class
@param title: the title of the Window
@type title: str
@param parentWin: Window which open this window
@type parentWin: widget
"""
self.win = gtk.Dialog(title, parentWin,
gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT)
self.win.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
self.entry = gtk.Entry()
self.entry.connect("activate", self.WinDialogPasswordActivate, None)
self.entry.set_visibility(False)
self.win.vbox.pack_start(self.entry)
self.win.show_all()
def WinDialogPasswordRun(self,password):
"""
Intercept user's action in the window
@param password: password to check
@type password: str
@return: True if the password is correct
@rtype: boolean
"""
ret = False
while True:
# Wait an action
response = self.win.run()
if (response == gtk.RESPONSE_OK):
if(self.entry.get_text() == password):
ret = True
break
else:
self.entry.set_text('')
self.entry.grab_focus()
if (response == gtk.RESPONSE_CANCEL):
ret = False
break
self.win.destroy()
return ret
def WinDialogPasswordActivate(self, entry, data=None):
"""
Intercept user's action in the entry field
@param entry: the entry that received the signal
@type entry: gtk.Widget
@param data: optional
@type:
"""
???????????????????
Dans le main :
winPassword = WinDialogPassword__("Password", self.main.MainGet_Win())
ret = winPassword.WinDialogPasswordRun("password") |
Partager