Python:从单独文件加载UI
大家好,
我正在用tkinter来做我的图形界面(GUI)。目前我写的应用程序大部分代码都是关于界面控件的。我知道怎么导入一个定义了函数的文件并使用它们,但我想要能够“导入”用户界面(UI)。这样我就可以重用这个UI文件,让主应用程序的代码更简洁。
我现在面临的一个概念性难题是,如果我声明了一个窗口:
main = Tk()
那么我该如何从另一个模块中填充“main”呢?
谢谢,
A.
2 个回答
0
你可以把它当作一个参数传递,比如 import my_gui; my_gui.create(main)
;不过在大多数情况下,我建议反过来做——让GUI文件成为你执行的文件,然后它从你的核心功能库中导入那些进行计算的函数。
0
我的建议是不要直接使用 main=Tk()
。相反,应该让你的用户界面(UI)继承自 Tk。比如说:
# in ui.py
import Tkinter as tk
class MyApp(tk.Tk):
def __init__(self, *args, **kwargs):
...
# in main.py
import ui
def main():
main = ui.MyApp()
main.mainloop()
如果你不喜欢从 tk.Tk
继承,另一种选择是先创建你的主窗口,然后把它作为参数传递给你用来创建图形界面的代码。比如:
# ui.py
def CreateUI(root)
...
# main.py
import ui
def main():
root = tk.Tk()
ui.CreateUI(root)