【发布时间】:2020-07-16 07:49:12
【问题描述】:
我有两个 tkinter class1.py 和 class2.py。我面临的问题是,当我在 class1.py 中导入 class2.py 时,它首先执行 class2.py 然后只执行 class1.py.
###class 1.py
import tkinter as tk
import class2
from class2 import root2
class MyApp1(object):
def __init__(self, parent):
self.root1 = parent
self.root1.title("Main frame")
self.frame = tk.Frame(parent)
self.frame.pack()
btn = tk.Button(self.frame, text="Open Frame", command=)
btn.pack()
def call(self):
self.root1.withdraw()
x = class2.MyApp2(root2)
root1 = tk.Tk()
root1.geometry("800x600")
app = MyApp1(root1)
root1.mainloop()
###class2.py
import tkinter as tk
class MyApp2(object):
def __init__(self, parent):
self.root2 = parent
self.root2.title("Main frame")
self.frame = tk.Frame(parent)
self.frame.pack()
btn = tk.Button(self.frame, text="Open Frame", command=self.openFrame)
btn.pack()
def openFrame(self):
pass
root2 = tk.Tk()
root2.geometry("800x600")
#app = MyApp2(root2)
root2.mainloop()
现在我如何从 class1.py 导入 class2.py 并且结果变成 class1 tkinter 窗口然后只有 class2 tkinter 窗口?
【问题讨论】:
-
你可以简单的把
root2 = tk.Tk()到末尾的行放到一个函数中,例如show(),然后你可以在MyApp1.call()函数里面调用class2.show()。