sal*_*y97 6 user-interface tkinter python-3.x
我已经使用 python 编写了多个 gui 应用程序,但每个应用程序都是一堆初始化和函数,我不觉得我正在充分利用面向对象的功能。我在网上搜索过,但没有找到任何显示此类程序最佳实践的地方。那么,对于具有多个标签、菜单、按钮和屏幕以及一些后端计算的复杂 GUI 应用程序,构建程序的最佳方法是什么?
目前,我只是在类的构造函数中对框架、标签等进行所有初始化,并调用一个函数来循环并执行后端操作。
我不是专家,我所说的只是我在同一个 Tkinter 项目上工作 4 年的个人建议。
我的第一条建议是将所有内容划分为尽可能少的部分,并创建函数来执行这些特定任务。如果一个表单需要 4 个用户输入小部件,那么这些小部件应该构建在它们自己的函数内。
创建一个类来在单独的线程中处理后台处理,并使用 after() 方法检查是否已完成,以避免在主线程上处理时冻结 gui。
如果您的 GUI 的大部分内容是相互链接的,则在单独的 py 文件中为其创建一个新类,并将其导入以将其与主代码完全分段。这迫使您模块化代码,这样各部分就不会彼此堆叠,导致单个错误破坏多个部分。作为一个例子,我制作了一个日历,其中包含每月的天数作为按钮,还有一个事件输入表单,我将其移至新的 py 文件并刚刚使用mycal = moduals.create_calendar(root, master, **kwargs)
Tkinter 是一个用于子分类的工具。尽可能地利用它为你带来优势。我已经在 Tkinter 包装器上工作了一段时间,其中有很多关于子类化 Tkinter 小部件的好例子: