2010-10-15 12 views
2

Y a-t-il un moyen de retourner quelque chose quand on appuie sur un bouton?Python Tkinter Return

Voici mon exemple de programme. un lecteur de fichier simple. La variable globale contient-elle le contenu du texte, puisque je ne peux pas retourner le contenu?

from Tkinter import * 
import tkFileDialog 

textcontents = '' 

def onopen(): 
    filename = tkFileDialog.askopenfilename() 
    read(filename) 

def onclose(): 
    root.destroy() 

def read(file): 
    global textcontents 
    f = open(file, 'r') 

    textcontents = f.readlines() 
    text.insert(END, textcontents) 

root = Tk() 
root.title('Text Reader') 
frame = Frame(root) 
frame.pack() 
text = Text(frame, width=40, height=20) 
text.pack() 
text.insert(END, textcontents) 

menu = Menu(root) 
root.config(menu=menu) 

filemenu = Menu(menu) 
menu.add_cascade(label="File", menu=filemenu) 
filemenu.add_command(label="Open...", command=onopen) 
filemenu.add_command(label="Exit", command=onclose) 

mainloop() 
+1

Retour * à qui *? – delnan

+0

Donc, fondamentalement, vous utilisez simplement des globals pour écrire des choses? Par exemple, en utilisant un fichier, si je veux obtenir le chemin sélectionné, je l'enregistre simplement dans une variable globale/ – shawn

+0

que vous venez de répondre indirectement vous-même: "... en utilisant un fichier, si je veux obtenir le chemin sélectionné ...". Vous le faites déjà dans 'filename = tkFileDialog.askopenfilename()'. Alors, comment ['tkFileDialog.askopenfilename'] (http://svn.python.org/view/python/trunk/Lib/lib-tk/tkFileDialog.py?revision=64257&view=markup) le fait-il? – tzot

Répondre

0

Si vous vouliez dire le signal à l'utilisateur, voici quelques exemples de code:

import Tkinter 
import tkMessageBox 

top = Tkinter.Tk() 

def helloCallBack(): 
    tkMessageBox.showinfo("Hello Python", "Hello World") 

B = Tkinter.Button(top, text ="Hello", command = helloCallBack) 

B.pack() 
top.mainloop() 

et la source: Python - Tkinter Button tutorial

+0

a posté le code en haut – shawn