Python Tkinter Return - PullRequest
       4

Python Tkinter Return

2 голосов
/ 15 октября 2010

Есть ли способ вернуть что-либо, когда нажата кнопка?

Вот мой пример программы.простая программа для чтения файловЯвляется ли глобальная переменная для хранения текстового содержимого способом, поскольку я не могу вернуть содержимое?

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()

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Tk (inter) основан на событиях, что означает, что вы не возвращаете значения, а привязываете обратные вызовы (функции) к действиям.

подробнее здесь: http://effbot.org/tkinterbook/button.htm

0 голосов
/ 15 октября 2010

Если вы хотели передать сигнал пользователю, вот пример кода:

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()

и источник: Python - учебник по кнопкам Tkinter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...