Python 与 CustomTkinter - 将应用程序拆分为多个 python 文件

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

我目前有一个使用 CustomTkinter 的小应用程序。整个应用程序是类应用程序的一个实例。该类有一些绘制 UI 部分的方法,以及执行可以更新 UI 的后台任务的方法,并且效果很好。

但是,随着我的应用程序的增长,我认为我需要将其拆分为多个文件,以便更容易维护。 UI 构建方法可以在文件中,UI 的任何复杂组件都可以是它们自己文件中的类,任何处理文件 I/O 的方法都可以在文件中等等。

我不明白的是如何拆分它并管理类结构。在我的 UI.py 文件中,我是否应该有一个继承自 (customtkinter.CTk) 的 UI 的 UI 类?然后在我的 main.py 文件中,执行 self.ui = UI() 吗?如果我这样做,另一个从属文件中的方法将如何能够更新 ui.py 文件中的控件?

我认为我很好地理解了类的概念,但我无法理解这一点。我找到的所有 OOP 教程都是基于基本的水果/狗/车辆类示例。但我正在使用 CustomTkinter 框架并从中继承一些东西,所以我不知道最佳实践是什么。

如果有人知道将 CustomTkinter 拆分为多个 py 文件的特定教程,那就太棒了!

我尝试将类中的方法放在单独的文件中,这实际上运行良好,但我收到了很多“未解析的属性引用”IDE 警告。我想我可能不应该继续处理这些警告,并希望将来能够纠正它。

python class oop inheritance customtkinter
1个回答
0
投票

我让它与在 main.py 中运行的名为 App 的主 ctk 窗口一起工作,并为此示例创建了另一个名为“Frame.py”的文件,并在导入到 main.py 并添加到的同一目录中创建了一个框架类应用程序类。这种方式适用于应用程序 CTk 类以及函数。

主要.py:

import customtkinter
import Frame


class App(customtkinter.CTk):
    def __init__(self):
        super().__init__()

        self.geometry("400x400")

        self.frame1 = Frame.Frame1(self)
        self.frame1.grid(row=0, column=0)


app = App()
app.mainloop()

框架.py:

import customtkinter

class Frame1(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)

        self.label = customtkinter.CTkLabel(self, text="Hello!")
        self.label.grid(row=0, column=0)
© www.soinside.com 2019 - 2024. All rights reserved.