###################################################
# demo running two distinct mainloop calls;
# each returns after the main window is closed;
# save user results on python object: gui is gone;
# guis normally configure widgets and then run
# just one mainloop, and have all their logic in
# callbacks; this demo uses mainloop calls to
# implement two modal user interactions from a
# non-GUI main program; it shows one way to add
# a GUI component to an existing non-GUI script;
###################################################
from Tkinter import * 
from tkFileDialog import askopenfilename, asksaveasfilename 
class Demo(Frame):
 def __init__(self,parent=None):
 Frame.__init__(self,parent)
 self.pack()
 Label(self, text ="Basic demos").pack() 
 Button(self, text='open', command=self.openfile).pack(fill=BOTH)
 Button(self, text='save', command=self.savefile).pack(fill=BOTH)
 self.open_name = self.save_name = ""
 def openfile(self): # save user results
 self.open_name = askopenfilename() # use dialog options here
 def savefile(self):
 self.save_name = asksaveasfilename(initialdir='D:\\temp')
if __name__ == "__main__":
 # display window once
 print 'popup1...'
 mydialog = Demo() # attaches Frame to default Tk()
 mydialog.mainloop() # display; returns after windows closed
 print mydialog.open_name # names still on object, though GUI gone
 print mydialog.save_name
 # Non GUI section of the program uses mydialog here 
 # display window again
 print 'popup2...'
 mydialog = Demo() # recreate widgets again
 mydialog.mainloop() # window pops up again
 print mydialog.open_name # new values on the object again
 print mydialog.save_name
 # Non GUI section of the program uses mydialog again 
 print 'ending...'

AltStyle によって変換されたページ (->オリジナル) /