具有多个文件/导入的Python / Tkinker 应用程序

问题描述 投票:0回答:1

使用 Tkinter GUI 应用程序。由于代码变得相当大,我想开始将其分割成不同的文件。例如。类的单独文件、函数的单独文件等。

但是,如果我们使用 class.py 文件,它包含几个基于例如Tkinter 小部件。 代码片段:

class MylabelFrame(tk.LabelFrame):
    def __init__(self,parent,labels,header):
        super().__init__()
        self.labels=labels
        self.configure(text=header)
        self.parent=parent
        thisRow=0
        thisColumn=0
        self.textvar='n/a'
        for i in self.labels:
          <and so on>

因此结构可能如下所示:

/main
   main.py                   (need to import Tkinter tk)
   /lib
      class.py               (need to import Tkinter tk)
      functions.py           (need to import Tkinter tk)

调试应用程序时,它会抛出错误,因为例如由于缺少导入 tk,class.py 无法构建。然而,导入是在main中完成的,但这也不例外。

NameError: name 'tk' is not defined

我知道我们有 init.pyall,但在我看来这并不能解决问题..

处理这个问题的正确方法是什么?当然,我可以对每个文件使用相同的导入,但这感觉像是在创造开销吗?最后,我需要在每个 .py 文件上导入相同的模块......我想一定有一种更聪明的方法来做到这一点?

提前谢谢您!

python tkinter import module
1个回答
0
投票

我会继续在您需要的每个模块中导入 tkinter。这简单明了,并且不会花费您担心的开销 - 您只会从第一次导入时创建对已加载模块的引用

© www.soinside.com 2019 - 2024. All rights reserved.