首頁 >後端開發 >Python教學 >Python關於tkinter模組中類別的三種繼承方式範例分享

Python關於tkinter模組中類別的三種繼承方式範例分享

黄舟
黄舟原創
2017-08-08 11:18:222559瀏覽

這篇文章主要介紹了Python tkinter模組中類別繼承的三種方式,結合實例形式分析了三種繼承方式的實現方法與相關注意事項,需要的朋友可以參考下

本文實例講述了Python tkinter模組中類別繼承的三種方式。分享給大家供大家參考,具體如下:

tkinter class繼承有三種方式。

提醒注意這幾種繼承的運作方式

一、繼承object

1.舖tk .Frame給parent:

說明:

self.rootframe = tk.Frame(parent)<br>tk.Label(self.rootframe)


import tkinter as tk
class MyApp(object):
  def __init__(self, parent):
    self.rootframe = tk.Frame(parent)
    self.rootframe.pack()
    self.setupUI()
  def setupUI(self):
    tk.Label(self.rootframe, text=&#39;标签&#39;).pack()
if __name__ == &#39;__main__&#39;:
  root = tk.Tk()
  MyApp(root) # 注意这句
  root.mainloop()

2.直接使用root

#說明:

self.root = parent<br>tk.Label(self.root)


import tkinter as tk
class MyApp(object):
  def __init__(self, parent, **kwargs):
    self.root = parent
    self.root.config(**kwargs)
    self.setupUI()
  def setupUI(self):
    tk.Label(self.root, text = &#39;标签&#39;).pack()
if __name__ == &#39;__main__&#39;:
  root = tk.Tk()
  app = test(root)
  root.mainloop()

二、繼承tk.Tk


import tkinter as tk
class MyApp(tk.Tk):
  def __init__(self):
    super().__init__()
    self.setupUI()
  def setupUI(self):
    tk.Label(self, text=&#39;标签&#39;).pack()
if __name__ == &#39;__main__&#39;:
  MyApp().mainloop()

三、繼承tk.Frame

分兩種情況

1 .有parent


import tkinter as tk
class MyApp(tk.Frame):
  def __init__(self, parent=None):
    super().__init__(parent)
    self.pack()
    self.setupUI()
  def setupUI(self):
    tk.Label(self, text=&#39;标签&#39;).pack()
if __name__ == &#39;__main__&#39;:
  MyApp(tk.Tk()).mainloop()
  #MyApp().mainloop() # 也可以这样

註:self.pack()

2.沒有parent


import tkinter as tk
class MyApp(tk.Frame):
  def __init__(self):
    super().__init__()
    self.pack()
    self.setupUI()
  def setupUI(self):
    tk.Label(self, text=&#39;标签&#39;).pack()
if __name__ == &#39;__main__&#39;: 
  MyApp().mainloop()

以上是Python關於tkinter模組中類別的三種繼承方式範例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn