我已经构建了一个Python tkinter GUI应用程序,它是一个用于运行不同任务的应用程序。应用程序窗口在水平方向上分为两个部分,前半部分显示用户可以为所选菜单选项选择的选项,后半部分通过显示日志消息显示任务进度。每个任务都有一个单独的菜单选项,用户选择菜单选项,前半部分用用户选项和提交按钮刷新。
GUI是使用面向对象的方法构建的,其中菜单选项中的每个任务都是GUI对象的类方法。我现在有大约5-6个菜单选项,工作正常,但代码变得越来越大,很难调试任何问题或添加新功能。
有没有办法将类的方法写在单独的文件中,可以从主类中调用。GUI中的消息日志记录是在main类中编写的,所以如果该方法是在一个单独的文件中编写的,那么写在另一个文件中的日志消息将如何显示在主窗口中。
请推荐替代方案。
发布于 2021-05-01 13:44:59
这可能对您没有完全的帮助,但这就是我所使用的。我把我的tkinter代码分成两个文件。第一个gui.py包含图形用户界面组件( 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()methods.py
from tkinter import *
from tkinter import ttk
def change(self):
self.testlabel.config(text="After Button Click")https://stackoverflow.com/questions/67342422
复制相似问题