Python Tkinter 返回值

3 投票
2 回答
3839 浏览
提问于 2025-04-16 05:33

有没有办法在按钮被按下时返回一些东西?

这是我的示例程序,一个简单的文件读取器。因为我不能直接返回内容,所以我是不是应该用一个全局变量来保存文本内容呢?

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 个回答

0

如果你是想给用户反馈信号,这里有一些示例代码:

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按钮教程

1

Tk(inter) 是基于事件的,这意味着你不是直接返回值,而是把一些函数(我们叫它们回调)绑定到特定的动作上。

更多信息可以在这里找到: http://effbot.org/tkinterbook/button.htm

撰写回答