python的tkinter程式設計(四)GUI介面裡面使用類進行開發,也就是自定義元件

- ich lebe .發表於2020-10-26

之前我們建立的一個元件,放到了視窗裡面的程式碼是

btn01 = tk.Button(root)

我們看這個按鈕的原始碼

在這裡插入圖片描述
初始化的時候,有一個屬性master 這個的值就是我們建立的視窗的名字,根據原始碼可以知道,預設是None

由此可見,所有的元件原始碼都是一個類,裡面有很多的方法,現在我們就可以自己開發一個元件,也就是自己建立一個類

自己建立一個元件


from tkinter import *
from tkinter import messagebox


class Application(Frame): 自己建立的這個類就是一個元件,這個要繼承Frame類

    def __init__(self,master=None):  引數  原始碼就是這樣寫,master代表的是父容器
        # Frame是父類,得主動的呼叫父類 的構造器
        super().__init__(master)   # super() 代表的是父類的定義,而不是父類的物件
        self.master = master
        self.pack()  這個元件的定位
        self.createWidget()  自定義方法,在這個方法裡自定義元件


以後就在這個方法裡面自定義元件
    def createWidget(self):
#         建立元件
        self.btn01 = Button(self)
        self.btn01["text"] = "點選送花"
        self.btn01.pack()
        self.btn01["command"] = self.songhua

#         建立一個退出按鈕
        self.btnquit = Button(self,text = "退出",command = root.destroy)
        self.btnquit.pack()

    def songhua(self):
        messagebox.showinfo("送花","送很多的花")

root = Tk()
root.geometry("400x100+200+300")
root.title("測試")
app = Application(master = root)

root.mainloop()

對於元件的屬性的自定義,有兩種方法,以下是兩種方法,自己看的選擇

   建立元件
        self.btn01 = Button(self)
        self.btn01["text"] = "點選送花"
        self.btn01.pack()
        self.btn01["command"] = self.songhua

#         建立一個退出按鈕
        self.btnquit = Button(self,text = "退出",command = root.destroy)
        self.btnquit.pack()

總結

就是自定義一個元件,並且使用類的方式開發gui介面。

相關文章