python - python文件中的tkinter文本框可见性
问题描述
我有两个 Python 文件,test51.py 和 test61.py
第一个文件有一个带有按钮和文本框的小部件。第二个文件有几个函数可以将文本插入文本框。
当我运行时,我得到“T”未定义 - T 是文本框的名称。
如何使文本框在第二个文件中可见?
第一个文件;测试51.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()
第二个文件;测试61.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)
解决方案
T
文件中没有定义test61.py
,定义T
为global
. main()
您可以阅读本文以了解有关如何在 Python 中跨文件使用变量的更多信息。
这应该有效:
第一个文件;测试51.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()
第二个文件;测试61.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()
推荐阅读
- reactjs - React app - 在没有服务器的情况下上传 JSON 文件并将其读取到变量中?
- azure-hdinsight - 从 Azure 门户创建 HDInsight 群集时使用 SAS 密钥附加其他存储帐户
- python - 重塑张量是否保留了原始张量的特征?
- c++ - 在 C++ 中链接 MKL 库
- vue.js - 如何在 vue composition api 中使用激活和停用?
- python-3.x - Jupyter Notebook 没有输出。未显示错误
- go - 使用 Go 客户端测试 GraphQL Go 服务器
- amazon-web-services - 每月最后一天的 AWS 自动快照计划
- sql - SQL 连接由第三个交叉表连接的两个表
- postgresql - 在 Postgres 11.7 中将 ORDINALITY 添加到扩展的 JSON 数组