import tkinter
1.使用tkinter模塊前 一般先要建立一個tkinter的對象
例: window = tkinter.TK()
2.建立完對象設置好窗口屬性以及所有功能之后就要把窗口加載到消息循環中(程序的最后一句代碼)
例: window.mainloop()
3.設置窗口的屬性
窗口的標題: window.title("標題的內容")
窗口的大小: window.geometry("800x600+300+0") #800是寬 600是高 (300.0)是窗口的初始坐標位置
import tkinter win = tkinter.Tk() # 構造函數 win.title("你好 ") win.geometry("800x600+300+0") #800是寬 600是高 (300.0)是窗口的初始坐標位置 win.mainloop() # 進入消息循環
4.設置窗口按鈕
使用的的對象類tkinter.Button()
button.pack() # 包裝加載此按鈕(如果按鈕沒有設置大小,則默認安裝文件字數設置)
button.place(x=0,y=0) # 可以布局按鈕的位置
import tkinter
import os
def go():
os.system("notepad")
win = tkinter.Tk() # 構造函數
win.title("你好 ")
win.geometry("800x600+300+0") #800是寬 600是高 (300.0)是窗口的初始坐標位置
# 設置按鈕
button = tkinter.Button(win,text="打開記事本",command =go)
# text 按鈕按鍵內容 command 按鈕要控制的行為 width 寬 heigth 高
button2= tkinter.Button(win,text="打開記事",
command =lambda :print("holle "),
anchor = tkinter.CENTER, # 位置
bg = "blue", # 背景顏色
fg = "red", # 字體顏色
width = 5,
height=20)
# button.pack() # 包裝加載此按鈕(如果按鈕沒有設置大小,則默認安裝文件上的的字數大小加載)
button.place(x=0,y=0) # 可以布局按鈕的位置
button2.pack()
win.mainloop() # 進入消息循環
5.設置窗口標簽
使用的的對象類tkinter.Label()
import tkinter
win = tkinter.Tk()
win.geometry("800x800+300+100")
# 標簽 label
label = tkinter.Label(win,text="hello python",height=10,width=10)
label1 = tkinter.Label(win, # 父窗體
text="hello python", # 文本
# anchor = tkinter.CENTER, # 字體居中位置
bg = "blue", # 背景顏色
fg = "red", # 字體顏色
height=100, # 高
width=100) #寬
# text 標簽內容 width 寬 heigth 高
label.pack() # 包裝加載此按鈕(如果按鈕沒有設置大小,則默認安裝文件字數設置)
label1.pack()
win.mainloop()
補充:對於按鈕和標簽的位置參數補充
anchor = tkinter.CENTER, # 字體居中位置 anchor = tkinter.S, # 字體在下 anchor = tkinter.N, # 字體在上 anchor = tkinter.E, # 字體在右 anchor = tkinter.W, # 字體在左 sw 下左 se 下右 nw 上左 ne上右
上北下南 左西右東 east 東 north 北 south 南 west 西
6.設置輸入框
使用的的對象類tkinter.Entry()
import tkinter win = tkinter.Tk() entey = tkinter.Entry(win, show="", # 顯示輸入內容 如果沒有設置則是輸入的實際內容 # 如果是"*"也可以是其他設置的符號 這輸入的內容被隱藏顯示,顯示的是 *** width=50, # 寬 bg="red", # 背景顏色 fg="blue", # 字體顏色 ) entey.pack() win.mainloop()
7.設置輸出框
使用的的對象類tkinter.Listbox()
import tkinter win = tkinter.Tk() mylist = tkinter.Listbox(win, width=100, height=20, bg="red", # 背景顏色 fg="blue", # 字體顏色 ) mylist.pack() for item in range(1,10): mylist.insert(tkinter.END,#尾部插入 item) win.mainloop()
8.設置組合框
import tkinter
from tkinter import ttk
def go(*tuple):
# print(comboxlist.get()) # comboxlist.get()獲取在選擇控件里面選中的值
# print(type(comboxlist.get()))
n = comboxlist.get()
print(int(n)+int(n))
win = tkinter.Tk() # 構造窗體
# 第一步
comvalue = tkinter.StringVar() # 窗體自帶文本,新建一個值
# 構建窗體
comboxlist = ttk.Combobox(win,
textvariable=comvalue, # 初始化
# values=("1", "2", "3", "4","5"),
)
comboxlist["values"] = ("1", "2", "3", "4") # 可以通過這種方法加入屬性
comboxlist.current(0) # 選擇第一個
comboxlist.pack() # 包裝加載
comboxlist.bind("<<ComboboxSelected>>", go) # 綁定組合框事件
win.mainloop()
9. 設置按鈕和輸入框的組合輸入處理
import tkinter import os def go(): print(entry.get()) # 返回輸入的文本 if entry.get() == "記事本": os.system("notepad") win = tkinter.Tk() entry = tkinter.Entry(win) # 相當於一個 input # entry.pack() entry.place(x=0,y=0) # 可以使用place 進行布局 button = tkinter.Button(win,text="搜索",command=go) button.place(x=150,y=0) # 可以使用place 進行布局 # button.pack() win.mainloop() # 進入消息循環
10.圖形文本的編輯處理
import tkinter win = tkinter.Tk() text = tkinter.Text(win, bg="blue", fg="red" ) # 文本編譯器 text.insert(tkinter.INSERT,"你好 你好 hello、\r\n") text.insert(tkinter.INSERT,"你好 你好 hello、\r\n") text.insert(tkinter.INSERT,"你好 你好 hello") text.insert(tkinter.INSERT,"\r\n") text.insert(tkinter.INSERT,"你好 你好 hello") text.pack() win.mainloop()
11.表格數據顯示
import tkinter from tkinter import ttk win = tkinter.Tk() win.geometry("800x300+100+100") tree = ttk.Treeview(win) # 表格 tree["columns"] = ("姓名","年齡","身高") tree.column("姓名",width=100) # 表示列,不顯示 tree.column("年齡",width=100) tree.column("身高",width=100) tree.heading("姓名",text="姓名 - name") # 顯示表頭 tree.heading("年齡",text="年齡 - age") tree.heading("身高",text="身高 - tall") tree.insert("",0,text="line1",values=("小明",1,2)) # 插入的行數 tree.insert("",3,text="line1",values=("小明",3,3)) tree.insert("",2,text="line1",values=("小明",2,2)) tree.insert("",1,text="line1",values=("小明",1,1)) myidx=tree.insert("",4,"中國",text="中國") myidx1=tree.insert(myidx,0,"陝西",text="中國陝西",values=("小明",1,2)) myidx2=tree.insert(myidx,1,"江蘇",text="中國江蘇",values=("1")) myidx12=tree.insert(myidx1,0,"陝西渭南",text="陝西渭南",values=("1")) # tree.pack() tree.place(x=0,y=0) win.mainloop()
12.樹狀圖形划顯示
import tkinter from tkinter import ttk # 導入內部包 win = tkinter.Tk() tree=ttk.Treeview(win) # "" 表示一開始的根 # values = ("1")的值在樹狀圖中不顯示 myidx=tree.insert("",0,"中國",text="中國", values=("1")) myidx1=tree.insert(myidx,0,"陝西",text="中國陝西",values=("1")) myidx2=tree.insert(myidx,1,"江蘇",text="中國江蘇",values=("1")) myidx12=tree.insert(myidx1,0,"陝西渭南",text="陝西渭南",values=("1")) myidy=tree.insert("",1,"美國",text="美國") myidy1=tree.insert(myidy,0,"紐約",text="中國陝西") myidy2=tree.insert(myidy1,0,"皇后區",text="陝西渭南") tree.pack() win.mainloop()
