variables - 使用框架 tkinter 将变量从 main 传递给 child
问题描述
我使用Switch between two frames in tkinter的代码。
我想将变量 var1 从 main.py 类 SampleApp() 传递给 PageOne.py。我尝试了几个选项但没有成功。
我很感激如果有人能告诉我如何将 var1 传递给 pageOne。
谢谢
这里的代码:
主文件
import tkinter as tk
from StartPage import StartPage
from pageOne import PageOne
from pageTwo import PageTwo
pages = {
"StartPage": StartPage,
"PageOne": PageOne,
"PageTwo": PageTwo
}
class SampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self._frame = None
self.var1 = "Test"
self.switch_frame("StartPage")
def switch_frame(self, page_name):
"""Destroys current frame and replaces it with a new one."""
cls = pages[page_name]
new_frame = cls(master = self)
if self._frame is not None:
self._frame.destroy()
self._frame = new_frame
self._frame.pack()
if __name__ == "__main__":
app = SampleApp()
app.mainloop()
pageOne.py
# Multi-frame tkinter application v2.3
import tkinter as tk
class PageOne(tk.Frame):
def __init__(self, master, var1):
print(var1)
tk.Frame.__init__(self, master)
tk.Label(self, text="This is page one").pack(side="top", fill="x", pady=10)
tk.Button(self, text="Return to start page", command=lambda: master.switch_frame("StartPage")).pack()
if __name__ == "__main__":
app = PageOne()
app.mainloop()
解决方案
推荐阅读
- python - python 如何在sql中使用变量
- python - 输入为空,为空
- maven - 如何从maven项目多模块和spring boot生成依赖的jar文件
- c++ - Qt - 为什么我不能将我的自定义 QGraphicsItem 转换为 QObject?
- terminal - 使用 Xyce 通过网表进行香料模拟没有输出
- python - 如何在 django ORM 中获得 python [:-1] 的等值?
- java - 将包含数组的json字符串转换为Java中的Map
- typo3 - 如何在 TYPO3 Extbase 扩展中的 for..each 中使用多种形式
- angular - Angular 7 HttpClient 发布 404
- javascript - 将 If / Else 条件转换为 for 循环?