Python - окно сообщения tkinter: как получить переменные из Entry и использовать их позже в коде - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь настроить программу сообщений с графическим интерфейсом, но мне нужно настроить ее так, чтобы я мог повторно использовать имя HOST и PORT. это то, что я пытался сделать, но я застрял

from threading import Thread
import tkinter

HOST = "localhost"
PORT = 33000
"""GET PORT AND HOST GUI""" 
def show_entry_fields():
  print("HOST: %s\nPORT: %s" % (e1.get(), e2.get()))
  HOST = e1.get()
  PORT = e2.get()
  return HOST, PORT

master = Tk()
Label(master, text="HOST").grid(row=0)
Label(master, text="PORT").grid(row=1)

e1 = Entry(master)
e2 = Entry(master)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)

#Button(master, text='Quit', command=master.quit).grid(row=3, column=0, 
sticky=W, pady=4)
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, 
sticky=W, pady=4)

mainloop( )
"""END GUI"""

print("Host: %s Port: %s" % (HOST, PORT))

Я пытаюсь получить переменные из потока и использовать их после закрытия окна графического интерфейса. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 01 ноября 2018

Просто измените ваш метод show_entry_fields, чтобы включить глобальное объявление переменных HOST и PORT. Поскольку Tkinter не ожидает и не обрабатывает возвращаемое значение функции, строка return HOST, PORT ничего не делает.

def show_entry_fields():
    print("HOST: %s\nPORT: %s" % (e1.get(), e2.get()))
    global HOST
    global PORT
    HOST = e1.get()
    PORT = e2.get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...