00Listbox控件
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
'''
清單框控件,可以包含一個或者多個文本框
作用:在listbox控件的小視窗顯示一個字元串
'''
#1、建立一個listbox,添加幾個元素,BROWSE支援按下滑鼠移動位置
lb= tkinter.Listbox(win,selectmode = tkinter.BROWSE)
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"]:
lb.insert(tkinter.END,item)
#在開始添加
# lb.insert(tkinter.ACTIVE,"COOL")
#将清單當成一個元素添加的
# lb.insert(tkinter.END,["very good ","very nice"])
#删除 參數1,為開始的索引,參數二為結束的索引,如果不指定參數二,隻删除第一個索引處的内容
# lb.delete(1,3)
# lb.delete(1)
#選中參數1,為開始的索引,參數二為結束的索引,如果不指定參數二,隻選中第一個索引處的内容
# lb.select_set(2,4)
# lb.select_set(2,)
#取消選中
# lb.select_clear(2,4)
# lb.select_clear(3)
#擷取道清單中的元素個數
# print(lb.size()) # 6
#從清單中取值
# print(lb.get(2,4)) #('handesome', 'bs', 'sa')
# print(lb.get(2))
#傳回目前的索引項
# print(lb.curselection()) #(2,)
#判斷一個選項是否被選中
# print(lb.selection_includes(3))#False
# print(lb.selection_includes(2))#True
win.mainloop()
01Listbox控件中
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
#綁定變量
lbv =tkinter.StringVar()
#與BORWSE相似,但是不支援按下滑鼠移動位置
lb = tkinter.Listbox(win,selectmode = tkinter.SINGLE,listvariable=lbv)
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"]:
lb.insert(tkinter.END,item)
#列印目前清單中的選項
print(lbv.get())
#設定選擇
# lbv.set(("1","2","3"))
# print(lbv.get())
#綁定事件
def myPrint(event):
print(lb.curselection(),end="")#列印下标
print(lb.get(lb.curselection()))
lb.bind("<Double-Button-1>",myPrint,)
win.mainloop()
02Listbox控件種下
import tkinter
#建立主視窗
win = tkinter.Tk()
win.title("Liuwang")
# win.geometry("400x400+200+20")
#EXTENDED 可以使listbox支援shift 和 control。
#按住shift,可以實作連續選中
lb = tkinter.Listbox(win,selectmode = tkinter.EXTENDED)
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"
,"nice1","handesome1","bs1","sa1","a1a"
,"nic21e","handeso2me","bs2","sa2","aa2"]:
lb.insert(tkinter.END,item)
# 建立滾動條
sc = tkinter.Scrollbar(win)
sc.pack(side= tkinter.RIGHT,fill=tkinter.Y)
lb.configure(yscrollcommand=sc.set)
lb.pack(side= tkinter.LEFT,fill= tkinter.BOTH)
# 額外給屬性指派
sc['command'] = lb.yview
win.mainloop()
03Listbox控件下
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
# MULTIPLE支援多選
lb = tkinter.Listbox(win,selectmode = tkinter.MULTIPLE )
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"]:
lb.insert(tkinter.END,item)
win.mainloop()
04Scale控件
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
'''
供使用者通過拖拽訓示器改變變量的值,可以水準,也可以豎直
orient=tkinter.HORIZONTAL 水準
orient=tkinter.VERTICAL 豎直
tickinterval 選擇之将會為該值的倍數
'''
scale1 = tkinter.Scale(win,from_=0,to=100,
orient=tkinter.VERTICAL,
tickinterval = 20,length = 200)
scale1.pack()
#設定值
scale1.set(21)
def showNum():
print(scale1.get())
tkinter.Button(win,text ="按鈕",command = showNum).pack()
win.mainloop()
05Spingbox
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
'''
數值範圍控件
'''
#綁定變量
v = tkinter.StringVar()
#increment 步長 預設為1
# values 最好不要與from_ = 0 ,to = 100,,increment=2同時使用
#command 隻要值改變就會執行對應的方法
def update():
print(v.get())
sp = tkinter.Spinbox(win,from_=0,to = 100,increment=5,
textvariabl=v,command = update)
sp.pack()
# 設定值
# v.set(20)
# print(v.get())
win.mainloop()
06Menu頂層菜單
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
menubar = tkinter.Menu(win)
win.config(menu= menubar)
#menu1
#建立一個菜單選項
menu1 = tkinter.Menu(menubar,tearoff = False)
menu2 = tkinter.Menu(menubar,tearoff = False)
#向菜單欄添加内容
menubar.add_cascade(label="語言",menu = menu1)
menubar.add_cascade(label="顔色",menu = menu2)
def func():
print("Hello world")
#給菜單裡添加内容
for item in["Python","C","C++","OS","Swift","C#","shell","Java"
"JS","PHP","彙編","Nodejs","退出",]:
if item == "退出":
menu1.add_separator() # 添加分割線
menu1.add_command(label=item,command = win.quit)
else:
menu1.add_command(label=item,command= func)
menu2.add_command(label="red")
menu2.add_command(label="bule")
win.mainloop()
07Menu滑鼠右鍵菜單
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
#菜單條
menubar = tkinter.Menu(win)
#菜單
menu = tkinter.Menu(menubar,tearoff = False)
#給菜單裡添加内容
for item in["Python","C","C++","OS","Swift","C#","shell","Java"
"JS","PHP","彙編","Nodejs","退出",]:
menu.add_command(label=item)
menubar.add_cascade(label = "語言",menu = menu)
def showMenu(event):
menubar.post(event.x_root,event.y_root)
win.bind("<Button-3>",showMenu)
win.mainloop()
08Combobox下拉控件
import tkinter
from tkinter import ttk
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
#建立下拉框
# com = ttk.Combobox(win,)
# com.pack()
#設定下拉資料
# #綁定變量
cv = tkinter.StringVar()
com= ttk.Combobox(win,textvariable = cv )
com.pack()
com["value"]= ("黑龍江","吉林","遼甯")
#設定預設值
com.current(0)
#綁定時間
def func(event):
print("Liuwang is handsome")
print(com.get())
# print(cv.get())
com.bind("<<ComboboxSelected>>",func)
win.mainloop()
09Frame控件
import tkinter
win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
'''
架構控件
在螢幕上可以顯示一個矩形區域,多作為容器控件
'''
#整個視窗中建立frame
frm = tkinter.Frame(win)
frm.pack()
#left
#在frm 的架構裡建立了一個frame
frm_1=tkinter.Frame(frm)
tkinter.Label(frm_1,text=" 左上 " ,bg ="pink").pack(side= tkinter.TOP)
tkinter.Label(frm_1,text=" 左下 " ,bg ="blue").pack(side= tkinter.TOP)
frm_1.pack(side= tkinter.LEFT)
#RIGHT
frm_2=tkinter.Frame(frm)
tkinter.Label(frm_2,text=" 右上 " ,bg ="yellow").pack(side= tkinter.TOP)
tkinter.Label(frm_2,text=" 右下 " ,bg ="red").pack(side= tkinter.TOP)
frm_2.pack(side= tkinter.RIGHT)
win.mainloop()