python - 如何让 Tkinter Frame 接受参数?
问题描述
我正在开发一个超过 20 帧的应用程序。
有一帧(帧 {A})打开另一帧(帧 {B}),并且我需要将一些数据从帧 A 传递到帧 B,我该怎么做?
这是我的 Main.py 用于打开所有框架
class Application(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.window = tk.Frame(self)
self.window.pack()
self.currentFrame = ""
self.frames = {}
for F in (
FirstPage, SecondPage):
frame = F(self.window, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(FirstPage, first)
def show_frame(self, page, framename):
self.currentFrame = framename
frame = self.frames[page]
frame.tkraise()
def addAndShowFrame(self, Page, frameName):
try:
self.show_frame(Page, frameName)
except:
frame = Page(self.window, self)
self.frames[Page] = frame
frame.grid(row=0, column=0, sticky="nsew")
frame.tkraise()
app = Application()
app.attributes('-fullscreen', True)
app.mainloop()
然后我打开了这个框架
from tkinter import ttk
from Base import *
from Db import *
from NwabFrames.SohofPages.Mawdo import SohofNwMawdo
class FirstPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
def open_new_frame():
controller.addAndShowFrame(
SohofNwMawdo, "test")
# Create Canvas
canvas = tk.Canvas(self, bg="black", width=1920, height=1080)
canvas.grid(row=0, column=0)
self.bg = open_image_resize(r"Images\3-NwabPages\SohofPage\Bg.png")
canvas.create_image(0, 0, image=self.bg, anchor="nw")
button = tk.Button(canvas, text='open', command=open_new_frame, bg='#2b2b2b', fg='#fdd8a4')
canvas.create_window(cord(0.1, 0.1), window=button)
现在我需要从最后一帧打开另一个并用一些数据启动它
解决方案
推荐阅读
- javascript - javascript socket.io 客户端未收到事件
- mysql - 当文本变长时,MySQL REPLACE 功能不起作用
- php - Symfony 表单和优雅地处理违反 Doctrine 约束的行为
- django-rest-framework - 如何序列化模型实例列表?
- c# - 在子路径上托管 Blazor 服务器
- python - 在 Subplot Python 中绘制对数刻度
- intellij-idea - 如何通过按住 Alt + 鼠标选择来使用列选择模式 Intellij IDE?
- python - 无法在 pycharm 上安装 pygame
- c++ - 从同一类的另一个成员中引用类成员对象是不好的做法吗?
- docker - Laradock,在 localhost 上使用 Nginx 配置 SSL