gpt4 book ai didi

python - 带或不带 OOP 的 Tkinter

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:32 24 4
gpt4 key购买 nike

在学习 Tkinter 时,我只找到了没有 OOP 的 Tkinter 教程,但查看 Python.org 文档时,它似乎全都在 OOP 中。使用类有什么好处?从我到目前为止所学的内容来看,似乎需要做更多的工作,而且语法看起来日夜不停。

最佳答案

这将是一个非常通用的答案,而且大多数答案都是自以为是的。说到这一点,答案可能会因此而被否决和关闭。

无论如何...假设您有一个带有一堆复杂逻辑的大型 GUI,确保您可以编写一个包含数百行(如果不是数千行)的巨大文件,并通过不同的函数代理一堆东西并使其工作。但是,逻辑很乱。

如果您可以将 GUI 的不同部分以及围绕它们的所有逻辑划分开来会怎样?然后,获取这些组件并将它们聚合到构成 GUI 的总和中?

这正是您可以在 Tkinter 中使用类的目的。更一般地说,这本质上是您使用类的目的 - 将事物抽象为(可重用 - 实例)对象,提供有用的实用程序。

示例:

我很久以前用 Tkinter 构建的一个应用程序,当时我第一次了解到它是一个文件移动程序。文件移动程序让您选择源/目标目录,具有日志记录功能、搜索功能、下载完成时的监控过程、正则表达式重命名选项、解压缩存档等。基本上,我能想到的所有移动文件的方法。

所以,我所做的就是像这样(在高层次上)拆分应用程序

1) 有一个 main,它是构成主 GUI 的组件的集合

聚合本质上是一个侧边栏、用于选择各种选项的按钮/标签,根据需要分成它们自己的部分,以及一个用于操作日志记录和搜索的滚动文本区域。

所以,主要组件是这样拆分的:

2) 具有以下组件的侧边栏

  • 包含监控进程选项的部分

  • 包含自定义正则表达式或用于重命名文件的预制正则表达式选项的部分

  • 解包等各种标志部分

3) 内置搜索功能的日志/文本区域部分 + 转储(保存)日志文件或查看日志文件的选项。

这是对“大”组件的高级描述,这些组件由属于它们自己的类的较小组件组成。因此,通过使用类,我能够将复杂的逻辑包装成独立的小块。

诚然,您可以用函数做同样的事情,但是您拥有 GUI 的“片段”,您可以考虑组合在一起的对象(类)。因此,它只会使代码/逻辑更清晰。

关于python - 带或不带 OOP 的 Tkinter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44992913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com