首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OOP方法的TKinter

使用OOP方法的TKinter
EN

Code Review用户
提问于 2022-11-12 08:34:06
回答 1查看 245关注 0票数 1

我开始构建一个用于自动网络故障排除的应用程序。到目前为止没有任何问题。我使用OOP方法@,它在init方法中创建小部件。困扰我的是,当应用程序开始变得更加复杂(Ex:添加更多的小部件);init方法将变得更加拥挤,限制了代码的可见性。

是否有更好的方法来创建小部件而不拥挤init()方法?

代码语言:javascript
复制
from tkinter import *
import customtkinter

class App(customtkinter.CTk):
    def __init__(self):
        super().__init__()

        self.title("Automated TShooting Application")
        self.geometry("587x450+500+50")
        self.iconbitmap("Sharingan.ico")
        self.resizable(False, False)

        self.mainframe = customtkinter.CTkFrame(self, width=400, height=400)
        self.mainframe.grid(row=0, column=0, padx=20, pady=(20, 20))

        self.username_label = customtkinter.CTkLabel(self.mainframe, text="Username")
        self.username_label.grid(row=0, column=0, padx=20, pady=(20, 0))
        self.username_entry = customtkinter.CTkEntry(self.mainframe)
        self.username_entry.grid(row=1, column=0, padx=20)

        self.password_label = customtkinter.CTkLabel(self.mainframe, text="Password")
        self.password_label.grid(row=2, column=0)
        self.password_entry = customtkinter.CTkEntry(self.mainframe)
        self.password_entry.grid(row=3, column=0, padx=20, pady=(0, 20))

    

if __name__ == "__main__":
    customtkinter.set_appearance_mode("light")

    app = App()
    app.mainloop()
EN

回答 1

Code Review用户

回答已采纳

发布于 2022-11-12 11:08:45

在代码中使用类并不会自动使其成为OOP。在这种情况下,您没有使用它的任何优点(封装、继承、多态、组合等等)。因此,将所有这些标签和条目作为App类的字段是没有意义的。

一般来说,如果您打算扩展应用程序,那么将LoginFormPasswordForm提取到它们自己的类中是个好主意。但是,我不确定您正在使用的库是否允许这样做。甚至是作者编写的“复杂例子” (!)库使用文本墙方法,因此它看起来甚至不支持OOP方法。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/281155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档