python - 如何将tkinter帧中基于类的帧划分为不同的python文件
问题描述
我有一个 tkinter 应用程序,它分为许多类(tkinter 中的框架),程序已经变成了 1000 多行,现在我想把它分成不同的文件,任何人都可以指导我如何实现这一点。
我的代码就像
class tkinterApp(tk.Tk): #this is the class which make navigation pages possible
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
self.frames = {}
self.attributes('-fullscreen', True)
for F in (StartPage, connect_page, login_page, signup_page, dashboard_page,trip_page,destination_reached_page):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
#some code .....
class connect_page(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
#some page...
#more classes like this ........
我想将页面分成不同的python文件和tkinterApp
不同文件中的主类,如果如何,这可能吗?
解决方案
只需将类及其所需的所有导入剪切/粘贴到另一个文件中,然后导入它。
# start_page.py
import tkinter as tk
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
#some code .....
然后在你的主文件中:
#!/usr/bin/env python3
# main_program.py
from start_page import StartPage
# rest of your code
附带说明一下,1000 多行并不是那么大,也并不罕见。您可能需要阅读 IDE 的代码导航功能。
推荐阅读
- python - 每 24 小时从 MongoDB 中删除项目
- cmake - 无法使用 cmake 使用本地 SDL2 存储库正确创建 SDL2_ttf 库
- sql - 如何在 Oracle 计划作业中使用变量?
- google-sheets - 谷歌表格公式在多个条件下计数
- ruby-on-rails - 结果使用 ruby on rails 多次重复该消息
- javascript - JS过滤数组或长度未知的数组?
- python - 从第三方 API 搜索结果并将每个结果呈现到页面上:如何从每个结果中获取数据以保存到数据库?
- python - 如何使用多项式贝叶斯预测测试查询
- c++ - CMake:可以在不同 CMakeLists.txt 的目标之间重用自定义命令吗?
- reactjs - 如何通过 React-slick useRef hook 和 typescript 使用 AutoPlay 方法