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
| #!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
try:
import tkinter
except:
import Tkinter as tkinter
import tkSimpleDialog
class GRABBED_INPUT(tkinter.Toplevel):
def __init__(self, stringvar, status_var, prompt):
tkinter.Toplevel.__init__(self)
self.title(sys.argv[0])
self.status_var = status_var
self.status_var.set(True)
tkinter.Label(self, text=prompt).pack()
tkinter.Entry(self, textvariable=stringvar, width=80).pack()
tkinter.Button(self, text="OK", width=8, command=self.ok).pack()
tkinter.Button(self, text="CANCEL", width=8, command=self.cancel).pack()
self.protocol('WM_DELETE_WINDOW', self.cancel)
def grab(self):
self.grab_set()
self.focus()
self.mainloop()
def ok(self):
self.quit()
self.destroy()
def cancel(self):
self.status_var.set(False)
self.ok()
def askTkStringVar(stringvar, prompt):
old_value = stringvar.get()
status_var = tkinter.BooleanVar()
win = GRABBED_INPUT(stringvar, status_var, prompt)
win.grab()
if win.status_var.get() == False:
stringvar.set(old_value)
if __name__ == '__main__':
racine=tkinter.Tk()
racine.title(sys.argv[0])
texte_saisi=tkinter.StringVar(value='azerty')
bouton=tkinter.Button(racine,text='Saisir',command=lambda stringvar=texte_saisi, prompt="Entrez une chaine":askTkStringVar(stringvar, prompt)).pack()
for x in range(5):
tkinter.Entry(racine, textvariable=texte_saisi, width=80).pack()
racine.mainloop() |
Partager