## 20240206 python 筆記
### GUI介面:(tkinter module)
1.windows:a container for widgets (可以放進元素的容器(視窗))
2.widgets:GUI elements:buttons,textboxes,labels,images (簡單上來說就是GUI的元素)
```python
from tkinter import*
window=Tk() #創建一個GUI
window.geometry("420x420") #window 大小 #geometry:幾何 #為string numxnum
window.title("test window") #name of window
window.config(background="black") #background color
window.config(background="#5cfcff") #也可以用色碼
window.mainloop() #display window,and wait for events.
```
### label of GUI
An area wedget that holds text / image within a window.
```python
from tkinter import*
window=Tk()
window.geometry("400x400")
#photo=PhotoImage(file="file_name") #將圖片存進photo變數
#有一些可改變的參數
lable=Label(window,text="hello", #text
font=("Arial",40,"bold"), #font(字型)
foreground="Green", #foreground(字體顏色)
background="black",
relief=RAISED, #border
border=10, #thickness of border
padx=20, #the x direction distance of text to border
pady=20 #the y direction distance of text to border
#image=photo #upload picture
)
lable.pack() #要使用.pack()才會將label上傳
lable.place(x=100,y=0) #position of label
window.mainloop() #display window,and wait for events.
```
### button of GUI
click it and do some thing.
```python
from tkinter import*
click_times=0
def click():
global click_times #注意:因為在func外的預設都為global variable,所以要再修改為global 是在func內宣告!!
click_times+=1
print("clicked",click_times)
window=Tk()
#photo=PhotoImage(file="file_name")
button=Button(window, #window
text="click it", #button 上文字
command=click, #按下button 執行func
font=("Comic Sans",30), #button 字體
foreground="green", #字體顏色
background="black", #背景顏色
activeforeground="red", #按下時字體顏色
activebackground="blue", #按下時背景顏色
state=ACTIVE, #button是否打開
#image=photo,
compound="top") #圖片在字體上面("top"),圖片在字體下面("button")
button.pack() #upload button
window.geometry("200x200")
window.mainloop()
```
### entry box
enable user to input a single line
```python
from tkinter import*
def submission():
contents=entry_box.get()
print(contents)
def deletion():
entry_box.delete(0,END)
def backspace():
entry_box.delete(entry_box.index(END)-1,END)
window=Tk()
window.geometry("200x200")
entry_box=Entry(window,font=("arial",50),
foreground="green",
show="*")
entry_box.pack()
button1=Button(window,text="submit",command=submission)
button2=Button(window,text="delete",command=deletion)
button3=Button(window,text="backspace",command=backspace)
button1.pack(side="right")
button2.pack(side="right")
button3.pack(side="right")
entry_box.insert(0,"hi")
window.mainloop()
```