Python:从单独的文件加载UI

时间:2011-10-13 01:49:57

标签: python tkinter

G'day All,

我正在使用tkinter作为我的GUI。目前,当我编写应用程序时,大部分代码都是界面小部件。我知道如何导入已定义函数的文件并使用它们,我希望能够“导入”UI。这样我就可以重用UI文件并对主应用程序进行整理。

我面临的概念障碍是,如果我宣布一个窗口:

main = Tk()

如何从另一个模块填充“main”?

谢谢, 甲

2 个答案:

答案 0 :(得分:0)

您可以将其作为import my_gui; my_gui.create(main)之类的参数传递;但在大多数情况下,我建议反过来工作 - 将GUI文件作为您执行的文件,并从核心功能库中导入数字运算函数

答案 1 :(得分: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继承,那么您的另一个选择是创建主窗口,然后将其作为参数传递给您创建GUI的任何代码。例如:

# ui.py
def CreateUI(root)
    ...

# main.py
import ui
def main():
    root = tk.Tk()
    ui.CreateUI(root)
相关问题