Как получить ввод из функции в Python и распечатать в графическом интерфейсе tkinter? - PullRequest
0 голосов
/ 25 января 2019
from tkinter import *

def printSomething():
    inputValue=textBox.get("1.0","end-1c")
    res=response(inputValue)
    label = Label(root, text=res)
    #this creates a new label to the GUI
    label.pack() 

root = Tk()

button = Button(root, text="Print Me", command=printSomething) 
button.pack()
textBox=Text(root, height=2, width=10)
textBox.pack()
root.mainloop()

Я написал код Python, который возвращает текст.и распечатать это в tkinter label. в то время как я пытаюсь выполнить это показывает "None" в метке.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вероятно, было бы лучше создать метку в глобальном пространстве имен один раз, а затем просто обновлять метку при каждом нажатии кнопки.

Я также рекомендую использовать import tkinter as tk против from tkinter import *, так как он обеспечивает лучшую поддержку по мере роста вашего кода и не приводит к перезаписи встроенных методов.

Я обновил ваш код и изменил несколько вещей, чтобы лучше соответствовать стандарту PEP8 .

import tkinter as tk


def print_something():
    label.config(text=text_box.get("1.0", "end-1c"))

root = tk.Tk()
tk.Button(root, text="Print Me", command=print_something).pack()
text_box = tk.Text(root, height=2, width=10)
text_box.pack()

label = tk.Label(root)
label.pack()
root.mainloop()
0 голосов
/ 25 января 2019

Просто изменив свою линию:

res = response(inputValue)

до

res = inputValue

работал для меня, создавая новый ярлык каждый раз, когда я нажимал кнопку.

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