Окно с tk для получения текста

Я создаю небольшое образовательное приложение.

У меня уже есть весь код, все, что мне не хватает, это способ открыть окно с TK, отображающим текстовое поле, изображение и кнопку.

Все, что он должен сделать, это вернуть текст, вставленный в текстовое поле, после нажатия кнопки и закрытия окон.

Итак, как мне это сделать?

Я смотрел на код, но ничего из того, что я делал, не работало, мне почти стало стыдно, что это так просто.

Спасибо


person mg_    schedule 20.05.2012    source источник
comment
Приложение командной строки?   -  person jadkik94    schedule 20.05.2012
comment
Есть ли у вас примеры кода того, что вы пробовали до сих пор с Tk, чтобы сообщество могло увидеть, что может быть не так?   -  person jdi    schedule 20.05.2012
comment
Я рад сообщить, что не перешел на PySide и научился им пользоваться. Теперь все это кажется проще.   -  person mg_    schedule 18.01.2013


Ответы (2)


Простой способ написать графический интерфейс — использовать 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, виджет метки также поддерживает включение изображений.

С Уважением

person Carlos    schedule 20.05.2012
comment
Если вы хотите вернуть текст, то в методе pressButton вы можете выйти из окна, а затем вернуть текст. - person Carlos; 20.05.2012
comment
Использовал ваш ответ, чтобы структурировать то, что мне нужно! Спасибо! - person mg_; 21.05.2012

введите здесь описание изображения

Это простой код, который получает входные данные от inputBox до myText. Это должно помочь вам начать работу в правильном направлении. В зависимости от того, что еще вам нужно проверить или сделать, вы можете добавить к нему дополнительные функции. Обратите внимание, что вам, возможно, придется поиграть с порядком строки image = tk.PhotoImage(data=b64_data). Потому что, если вы поставите его сразу после b64_data = .... Это даст вам ошибку. (Я использую MAC 10.6 с Python 3.2). И картинка пока работает только с 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: http://effbot.org/tkinterbook/entry.htm

Ссылка на то, как получить изображение: Вопрос Stackoverflow

person George    schedule 20.05.2012