最簡的形式python
from tkinter import * root = Tk() # 建立一個Tk實例 root.wm_title("標題") # 修改標題 root.mainloop() # 進入root的事件循環
運行結果函數
label標籤的使用oop
from tkinter import * root = Tk() root.wm_title("標題") w1 = Label(root, text="~~~~~~1號標籤~~~~~~") w2 = Label(root, text="~~~~~~2號標籤~~~~~~") w3 = Label(root, text="~~~~~~3號標籤~~~~~~") w4 = Label(root, text="~~~~~~4號標籤~~~~~~") w1.pack() w4.pack() w3.pack() root.mainloop()
結果spa
說明, 組件建立後並不會馬上出如今窗口上,還須要pack一下才會出現code
排列順序取決去 pack的順序 而非建立的順序對象
使用help函數 瞭解到 label還有不少屬性blog
>>> from tkinter import *
>>> help(Label.__init__) Help on function __init__ in module tkinter: __init__(self, master=None, cnf={}, **kw) Construct a label widget with the parent MASTER. STANDARD OPTIONS activebackground, activeforeground, anchor, background, bitmap, borderwidth, cursor, disabledforeground, font, foreground, highlightbackground, highlightcolor, highlightthickness, image, justify, padx, pady, relief, takefocus, text, textvariable, underline, wraplength WIDGET-SPECIFIC OPTIONS height, state, width
help(Label)的結果太多因此改爲 help(Label.__init__)事件
它能夠綁定一個函數/方法/可調用的對象, 在按鈕被點擊時,會調用與之綁定的東西get
兩種綁定方法it
一,在定義時 標註command 屬性
from tkinter import * def add_label(): global root w = Label(text="一個新增的標籤") w.pack() root = Tk() root.wm_title("one window") b1 = Button(root, text="一個按鈕", command=add_label) b1.pack() root.mainloop()
點了按鈕幾回以後
須要注意的是
command=add_label command屬性 將是一個function對象 command=add_label() command值爲None 由於add_label沒定義返回值 command="add_label" command 是str對象
第二種方法 使用bind方法
from tkinter import * def add_label(event): global root w = Label(text="一個新增的標籤"+str(event)) w.pack() root = Tk() root.wm_title("one window") b1 = Button(root, text="一個按鈕") b1.bind("<Button-1>", add_label) b1.pack() root.mainloop()
結果(點擊了幾回以後的)
xx.bind(事件描述,對應函數名)
對應函數定義時,必須加一個參數,,由於事件的詳細信息會做爲參數被"塞給"事件對應的函數 ,事件的詳細信息通常大牛們才用的到,新手能夠無視事件的內容 ,可是必須在函數定義處加一個參數 以免TypeError
TypeError: add_label() takes 0 positional arguments but 1 was given
這個函數須要0個參數, 可是調用時 被給了 1 個參數 參數數目不對 python 難以處理 因此報錯
對應函數名處必定要注意 是函數名 不要加引號 也不要加括號 緣由上面已解釋
#end