Python tkinter 모듈 에서 클래스 계승 의 세 가지 방식 분석

2495 단어 Pythontkinter
본 논문 의 사례 는 Python tkinter 모듈 에서 계승 하 는 세 가지 방식 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
tkinter class 계승 은 세 가지 방식 이 있 습 니 다.
이 몇 가지 계승 운행 방식 에 주의 하 라 고 일 깨 워 주다.
상속 object
1.parent 에 tk.Frame 을 깔 아 줍 니 다.
설명:self.rootframe = tk.Frame(parent)
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='  ').pack()
if __name__ == '__main__':
  root = tk.Tk()
  MyApp(root) #     
  root.mainloop()

2.루트 직접 사용
설명:self.root = parent
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 = '  ').pack()
if __name__ == '__main__':
  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='  ').pack()
if __name__ == '__main__':
  MyApp().mainloop()

3.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='  ').pack()
if __name__ == '__main__':
  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='  ').pack()
if __name__ == '__main__': 
  MyApp().mainloop()

더 많은 파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기