python继承的写法_python – 从框架继承或不继承Tkinter应用程序

这篇博客探讨了在Tkinter中选择继承Tk类还是Frame类进行窗口应用开发的考量。作者认为从Frame继承在某些情况下可能更具优势,特别是当需要支持多个窗口时。然而,最终选择取决于个人偏好和应用需求。文章强调了代码组织和可读性的重视,并提供了示例代码来说明两种方法的使用。
摘要由CSDN通过智能技术生成

我喜欢的选项是继承Tk类。我认为这是更合理的选择,因为窗口实际上是你的应用程序。从框架继承,对于我而言,从Button或Canvas或Label继承起来并没有什么意义。因为你只能有一个根,所以这是你继承的。

我还认为,如果您将导入作为导入Tkinter作为tk导入,而不是从Tkinter import *导入代码,则可以使代码更易读。所有的电话都明确提到了tk模块。我不建议所有的模块,但对我来说,Tkinter是有道理的。

例如:

import Tkinter as tk

class SampleApp(tk.Tk):

def __init__(self, *args, **kwargs):

tk.Tk.__init__(self, *args, **kwargs)

self.label = tk.Label(text="Hello, world")

self.label.pack(padx=10, pady=10)

app = SampleApp()

app.mainloop()

*注意:自从最初写这个答案以来,我改变了我的立场。我现在更喜欢从Frame而不是Tk继承。没有一个真正的优势或另一种方式,它更像是一种哲学选择。无论如何,我相信无论您是从Frame还是Tk继承,我认为任何一种选择都优于继承于无…的代码中的第一个例子。

如果您希望应用程序支持多个相同的窗口,那么从Frame继承的一个轻微优点就是超过Tk。在这种情况下,从Frame继承可以让您创建第一个窗口作为root的子节点,另外还可以创建Toplevel实例的子窗口。但是,我看到很少有程序需要这样做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值