Видимость текстового поля tkinter в python файлах - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть два Python файла, test51.py и test61.py

В первом файле есть виджет с кнопкой и текстовым полем. Во втором файле есть пара функций для вставки текста в текстовое поле. .

Когда я запускаю, я получаю "T" не определено - T является именем текстового поля.

Как я могу сделать текстовое поле видимым во втором файле?

Первый файл; test51.py

#!/usr/bin/python3
from tkinter import *
from test61 import *

def main():
    root = Tk()
    T = Text(root, height=2, width=30)
    T.pack()
    T.insert("1.0", "Just a text Widget\nin two lines\n")
    MyButton = Button(root, text = 'Press Me', command = lambda: test())
    MyButton.pack()
    root.mainloop()

if __name__ == "__main__":
  main()

Второй файл; test61.py

#!/usr/bin/python3
from tkinter import *
from test51 import *
import time
def test():
    delay = 3.0
    time.sleep(delay)
    print_to_gui('Files currently transferring')
    time.sleep(delay)
    print_to_gui('Currently merging all pdfs')

def print_to_gui(quote):
    T.insert("1.0", quote)

1 Ответ

0 голосов
/ 27 апреля 2020

T не определен в файле test61.py, определите T как global в main(). Вы можете прочитать this , чтобы узнать больше о том, как использовать переменные в файлах в Python.

. Это должно работать:

Первый файл; test51.py

#!/usr/bin/python3
from tkinter import *
import test61

def main():
    root = Tk()
    global T
    T = Text(root, height=2, width=30)
    T.pack()
    T.insert("1.0", "Just a text Widget\nin two lines\n")
    MyButton = Button(root, text = 'Press Me', command = lambda: test61.test())
    MyButton.pack()
    root.mainloop()

if __name__ == "__main__":
    main()

Второй файл; test61.py

from tkinter import *
import test51
import time

def test():
    delay = 3.0
    time.sleep(delay)
    print_to_gui('Files currently transferring')
    time.sleep(delay)
    print_to_gui('Currently merging all pdfs')

def print_to_gui(quote):
    test51.T.insert("1.0", quote)

if __name__ == "__main__":
    test51.main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...