用tk获取文本的窗口

时间:2012-05-20 17:20:15

标签: python window tk

我正在构建一个小型教育应用程序。

我已经完成了所有的代码,我所缺少的是一种方法是使用TK显示文本框,图像和按钮打开窗口。

所有它应该做的,它在单击按钮并关闭窗口后返回插入文本框中的文本。

那么,我该怎么做?

我一直在看代码,但我没有做过任何工作,我几乎感到惭愧,因为这是如此基本。

由于

2 个答案:

答案 0 :(得分:2)

编写GUI的简单方法是使用Tkinter。有一个示例显示带有文本和按钮的窗口:

from Tkinter import*

class GUI:

    def __init__(self,v): 

        self.entry = Entry(v)
        self.entry.pack()

        self.button=Button(v, text="Press the button",command=self.pressButton)
        self.button.pack()

        self.t = StringVar()
        self.t.set("You wrote: ")
        self.label=Label(v, textvariable=self.t)
        self.label.pack()

        self.n = 0

    def pressButton(self):

        text = self.entry.get()
        self.t.set("You wrote: "+text)

w=Tk()
gui=GUI(w)
w.mainloop()

您可以查看Tkinter文档,标签小部件也支持包含图片。

此致

答案 1 :(得分:2)

enter image description here

这是一个简单的代码,可以从inputBoxmyText获取输入。它应该让你开始朝着正确的方向前进。根据您需要检查或执行的操作,您可以为其添加更多功能。请注意,您可能需要使用行image = tk.PhotoImage(data=b64_data)的顺序。因为如果你在b64_data = ...之后把它放好。它会给你错误。 (我使用Python 3.2运行MAC 10.6)。而且这张照片目前仅适用于GIF。如果您想了解更多信息,请参阅底部的参考资料。

import tkinter as tk
import urllib.request
import base64

# Download the image using urllib
URL = "http://www.contentmanagement365.com/Content/Exhibition6/Files/369a0147-0853-4bb0-85ff-c1beda37c3db/apple_logo_50x50.gif"

u = urllib.request.urlopen(URL)
raw_data = u.read()
u.close()

b64_data = base64.encodestring(raw_data)

# The string you want to returned is somewhere outside
myText = 'empty'

def getText():
    global myText
    # You can perform check on some condition if you want to
    # If it is okay, then store the value, and exist
    myText = inputBox.get()
    print('User Entered:', myText)
    root.destroy()

root = tk.Tk()

# Just a simple title
simpleTitle = tk.Label(root)
simpleTitle['text'] = 'Please enter your input here'
simpleTitle.pack()

# The image (but in the label widget)
image = tk.PhotoImage(data=b64_data)
imageLabel = tk.Label(image=image)
imageLabel.pack()

# The entry box widget
inputBox = tk.Entry(root)
inputBox.pack()

# The button widget
button = tk.Button(root, text='Submit', command=getText)
button.pack()

tk.mainloop()

如果您想了解有关Tkinter Entry Widget的更多信息,请参考以下内容:http://effbot.org/tkinterbook/entry.htm

如何获取图像的参考:Stackoverflow Question