python - Python Tkinter GUI 应用程序查询
问题描述
我已经构建了一个 Python tkinter GUI 应用程序,它是一个用于运行不同任务的应用程序。应用程序窗口水平分为两半,前半部分显示用户可以为所选菜单选项选择的选项,后半部分通过显示日志消息显示任务的进度。每个任务都有一个单独的菜单选项,用户选择菜单选项,前半部分用用户选项和提交按钮刷新。
GUI 是使用面向对象的方法构建的,其中菜单选项中的每个任务都是 GUI 对象的类方法。我现在有大约 5-6 个菜单选项并且工作正常,但是代码量变得很大,并且很难调试任何问题或添加新功能。
有什么方法可以将类的方法写在单独的文件中,可以从主类中调用。GUI 中的消息记录是写在主类中的,所以如果方法写在一个单独的文件中,那么写在另一个文件中的日志消息将如何出现在主窗口中。
请提出替代方案。
解决方案
这可能无法完全帮助您,但这是我使用的。我将我的 tkinter 代码分成 2 个文件。第一个gui.py
包含 GUI 组件(小部件),第二个methods.py
包含方法。这两个文件应该在同一个目录中。
这是一个简单的应用程序示例,它可以在单击按钮时更改标签。该方法change()
存储在不同的文件中。
gui.py
from tkinter import *
from tkinter import ttk
from methods import change #Using absolute import instead of wildcard imports
class ClassNameGoesHere:
def __init__(self,app):
self.testbtn = ttk.Button(app,text="Test",command = lambda: change(self))
#calling the change method.
self.testbtn.grid(row=0,column=0,padx=10,pady=10)
self.testlabel = ttk.Label(app,text="Before Button Click")
self.testlabel.grid(row=1,column=0,padx=10,pady=10)
def main():
root = Tk()
root.title("Title Goes Here")
obj = ClassNameGoesHere(root)
root.mainloop()
if __name__ == "__main__":
main()
方法.py
from tkinter import *
from tkinter import ttk
def change(self):
self.testlabel.config(text="After Button Click")
推荐阅读
- c# - EntityFramework Core 删除包含已读取实体的实体
- key - 如何通过提供助记词(NEAR 协议)获取钱包的私钥和公钥
- python-3.x - EE 证书密钥太弱 (_ssl.c:1131)
- typescript - 当涉及到 TypeScript 时,webpack 配置函数的类型是什么?
- c++ - C ++中的名称和变量有什么区别
- api - 如何找到基本网址?
- python - PySide2 接收者签名
- python - 如何在服务器上上传文件?
- c# - 如何在 Hololens 的背景上加载字节数组
- javascript - React 和 Typescript,警告:React.createElement:类型无效 - 期望字符串但得到:未定义