我是 python 新手,實際上也是編程新手,我最近正在使用 Tkinter 做一個簡單的專案。在這個專案中,我試圖創建一個強制注意視窗,我終于從這個頁面得到了答案。主要代碼如下:
import tkinter as tk
class App(tk.Tk):
TITLE = 'Application'
WIDTH, HEIGHT, X, Y = 800, 600, 50, 50
def __init__(self):
tk.Tk.__init__(self)
tk.Button(self, text="open popout 1", command=self.open1).grid()
tk.Button(self, text="open popout 2", command=self.open2).grid()
def open1(self):
PopOut1(self)
def open2(self):
# .transient(self) ~
# flash PopOut if focus is attempted on main
# automatically drawn above parent
# will not appear in taskbar
PopOut2(self).transient(self)
if __name__ == '__main__':
app = App()
app.title(App.TITLE)
app.geometry(f'{App.WIDTH}x{App.HEIGHT} {App.X} {App.Y}')
# app.resizable(width=False, height=False)
app.mainloop()
它雖然有效,但我仍然關心的一件事是他為什么在類 APP 中指定一個引數:
class App(tk.Tk):
但是,當他呼叫它時,類中沒有任何通過:
app = App()
任何人都可以回答它,或者只是給我一些我可以專門搜索的關鍵字。我已經閱讀了一些關于 python 類的教程,但沒有一個提到它。
uj5u.com熱心網友回復:
這稱為繼承。用于創建類物件的所有引數,就像您在此處所做的: 一樣app = App(),都在__init__方法中。
class App(tk.Tk):
這部分不是引數。相反,這表明 App 類繼承了 tk.Tk 類的方法。本質上,這就是將您的 App 類變成 Tkinter 應用程式的原因。沒有它,您將不會擁有 Tkinter 提供的任何功能。觀察代碼底部如何創建應用程式,然后呼叫app.mainloop(). 請注意,您的 App 類沒有 mainloop 方法。它實際上來自繼承的 tk.Tk 類。
也就是說,這是大多數語言中的一個主要主題,所以我毫不懷疑,如果您只是搜索“Python 繼承”,您會找到大量資源來進一步學習。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442672.html
標籤:python-3.x 班级 tkinter
上一篇:發送多個檔案附件郵件
