¿Как записать значения, которые вы вводите в текстовое поле, и сохранить их в переменных, чтобы использовать их в другой части программы? - PullRequest
0 голосов
/ 24 января 2020

Я sh, что значение, которое я получаю в переменной inputValue, может использоваться в другом разделе кода, но когда окно разрушено, введенное значение теряется

from tkinter import *
root=Tk()
def retrieve_input():
    inputValue=textBox.get("1.0","end-1c")
    print(inputValue)

def Close():
    root.quit()

def Ambas():
    retrieve_input()
    Close()

textBox=Text(root, height=2, width=10)
textBox.pack()
buttonCommit=Button(root, height=1, width=10, text="Aceptar", command=lambda: Ambas())
#command=lambda: retrieve_input() >>> just means do this when i press the button
buttonCommit.pack()
mainloop()

1 Ответ

0 голосов
/ 24 января 2020

Переменные, созданные внутри функции, являются локальными - вы должны использовать global для присвоения значения глобальной переменной

#from tkinter import * # PEP8: `import *` is not preferred
import tkinter as tk

# --- functions ---

def ambas(): # PEP8: `lower_case_names` for functions and variables
    global input_value

    input_value = text_box.get("1.0", "end-1c")
    print('inside ambas:', input_value)
    root.destroy()

# --- main ---

root = tk.Tk() # PEP8: spaces around `=`

text_box = tk.Text(root, height=2, width=10)
text_box.pack()

button_commit = tk.Button(root, height=1, width=10, text="Aceptar", command=ambas)
button_commit.pack()

root.mainloop()

print('after mainloop:', input_value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...