1、使用tkinter.Tk() 生成主窗口(window=tkinter.Tk()):
window.title('標題名')修改框體的名字,也可在創建時使用className參數來命名;
window.resizable(0,0)框體大小可調性,分別表示x,y方向的可變性;1表示可變,0表示不可變;
window.geometry('250x150')指定主框體大小;
window.quit()退出;(配合響應事件使用)
window.update_idletasks()
window.update()刷新頁面;
window.mainloop()進入消息循環(必需組件)
2、tkinter中的15種核心組件:
Button按鈕;
Canvas繪圖形組件,可以在其中繪制圖形;
Checkbutton復選框;
Entry文本框(單行);
Text文本框(多行);
Frame框架,將幾個組件組成一組
Label標簽,可以顯示文字或圖片;
Listbox列表框;
Menu菜單;
Menubutton它的功能完全可以使用Menu替代;
Message與Label組件類似,但是可以根據自身大小將文本換行;
Radiobutton單選框;
Scale滑塊;允許通過滑塊來設置一數字值
Scrollbar滾動條;配合使用canvas, entry, listbox,andtext窗口部件的標準滾動條;
Toplevel用來創建子窗口窗口組件。
(在Tkinter中窗口部件類沒有分級;所有的窗口部件類在樹中都是兄弟。)
3、組件的放置和排版(pack,grid,place)
pack組件設置位置屬性參數:
after:將組件置于其他組件之后;
before:將組件置于其他組件之前;
anchor:組件的對齊方式,頂對齊'n',底對齊's',左'w',右'e'
side:組件在主窗口的位置,可以為'top','bottom','left','right'(使用時tkinter.TOP,tkinter.LEFT);
fill:填充方式(Y,垂直,X,水平,BOTH,水平+垂直),是否在某個方向充滿窗口
expand1可擴展,0不可擴展,代表控件是否會隨窗口縮放
grid組件使用行列的方法放置組件的位置,參數有:
column:組件所在的列起始位置;
columnspan:組件的列寬;跨列數
row:組件所在的行起始位置;
rowspan:組件的行寬;rowspam=3? ?跨3行
sticky對齊方式:NSEW(北南東西)上下左右
padx、padyx方向間距、y方向間距(padx=5)place組件可以直接使用坐標來放置組件,參數有:
anchor:組件對齊方式;n, ne, e, se, s, sw, w, nw, or center ; ('n'==N)
x:組件左上角的x坐標;
y:組件左上角的y坐標;
relx:組件左上角相對于窗口的x坐標,應為0-1之間的小數;圖形位置相對窗口變化
rely:組件左上角相對于窗口的y坐標,應為0-1之間的小數;
width:組件的寬度;
heitht:組件的高度;
relwidth:組件相對于窗口的寬度,0-1之間的小數,圖形寬度相對窗口變化;
relheight:組件相對于窗口的高度,0-1之間的小數;
4、使用tkinter.Button時控制按鈕的參數:
anchor:指定按鈕上文本的位置;
background(bg)指定按鈕的背景色;
bitmap:指定按鈕上顯示的位圖;
borderwidth(bd)指定按鈕邊框的寬度;
command:指定按鈕消息的回調函數;
cursor:指定鼠標移動到按鈕上的指針樣式;
font:指定按鈕上文本的字體;
foreground(fg)指定按鈕的前景色;
height:指定按鈕的高度;
image:指定按鈕上顯示的圖片;
state:指定按鈕的狀態(disabled);
text:指定按鈕上顯示的文本;
width:指定按鈕的寬度
padx設置文本與按鈕邊框x的距離,還有pady;
activeforeground按下時前景色
textvariable可變文本,與StringVar等配合著用
5、文本框tkinter.Entry,tkinter.Text控制參數:
background(bg) ?? 文本框背景色;
foreground(fg) ???????前景色;
selectbackground ?選定文本背景色;
selectforeground ?選定文本前景色;
borderwidth(bd) ??? 文本框邊框寬度;
font ??????????????? 字體;
show ????????? ???文本框顯示的字符,若為*,表示文本框為密碼框;
state ??????????? 狀態;
width ??????? ?文本框寬度
textvariable ??? ?可變文本,與StringVar等配合著用
6、標簽tkinter.Label組件控制參數:
Anchor標簽中文本的位置;background(bg)foreground(fg)背景色;前景色;
borderwidth(bd)邊框寬度;width? 、height標簽寬度;標簽高度;
bitmap標簽中的位圖;font字體;
image標簽中的圖片;justify多行文本的對齊方式;
text標簽中的文本,可以使用'\n'表示換行textvariable顯示文本自動更新,與StringVar等配合著用
7、單選框和復選框Radiobutton,Checkbutton控制參數:
anchor文本位置;background(bg)背景色;
foreground(fg)前景色;borderwidth邊框寬度;
width組件的寬度;height組件高度;
bitmap組件中的位圖;image組件中的圖片;
font字體;justify組件中多行文本的對齊方式;
text指定組件的文本;value指定組件被選中中關聯變量的值;
variable指定組件所關聯的變量;indicatoron特殊控制參數,當為0時,組件會被繪制成按鈕形式;
textvariable可變文本顯示,與StringVar等配合著用
8、組圖組件Canvas控制參數
background(bg)背景色;foreground(fg)前景色;
borderwidth組件邊框寬度;width組件寬度;
height高度;bitmap位圖;
image圖片;
繪圖的方法主要以下幾種:
create_arc橢圓圓弧;??create_arc(x1,y1,x2,y2,start=0,extent=120,tag='1')
#x1,y1和x2,y2分別為橢圓圓弧外接矩形的左上角和右下角坐標;
從0度,擴充到120度;圓弧別名為:‘1’;
create_bitmap繪制位圖,支持XBM;
create_image繪制圖片,支持GIF(x,y,image,anchor);
create_line繪制直線;(坐標羅列)
create_oval;繪制橢圓;
create_polygon繪制多邊形(坐標依次羅列,不用加括號,還有參數,fill,outline);
create_rectangle繪制矩形((a,b,c,d),值為左上角和右下角的坐標);
create_text繪制文字(字體參數font,);
create_window繪制窗口;
delete刪除繪制的圖形;delete('all')清除所有圖形;或清除指定別名的圖形;
itemconfig修改圖形屬性,第一個參數為圖形的ID,后邊為想修改的參數;
move移動圖像(1,4,0),1為圖像對象,4為橫移4像素,0為縱移像素,然后用root.update()刷新即可看到圖像的移動,
為了使多次移動變得可視,最好加上time.sleep()函數或canvas.after()函數;
coords(ID)返回對象的位置的兩個坐標(4個數字元組);只要用create_方法畫了一個圖形,就會自動返回一個ID,
創建一個圖形時將它賦值給一個變量,需要ID時就可以使用這個變量名。
after(100)程序在這里暫停100毫秒
對于按鈕組件、菜單組件等可以在創建組件時通過command參數指定其事件處理函數。方法為bind;或者用bind_class方法進行類綁定,bind_all方法將所有組件事件綁定到事件響應函數上。
9、菜單Menu
參數:
tearoff分窗,0為在原窗,1為點擊分為兩個窗口
bg,fg背景,前景
borderwidth邊框寬度
font字體
activebackgound鼠標劃過時背景,同樣有activeforeground,activeborderwidth,disabledforeground
cursor當子菜單分離原窗時,鼠標在子菜單欄上的形狀cursor="arrow""circle""clock""cross""dotbox"
"exchange""fleur""heart""heart""man""mouse""pirate""plus"等圖形
postcommand點擊菜單的回調函數
selectcolor選中時背景色,add_checkbutton控件選中時,√的顏色
takefocus
title當子菜單分離原窗時的標題
type
relief當子菜單分離原窗時的3D效果,relief=RAISED,SUNKEN,FLAT,RIDGE,SOLID,GROOVE
方法:
menu.add_cascade添加子菜單(menu參數為子菜單對象)
menu.add_command添加命令(label參數為顯示內容,command參數為響應函數)
menu.add_separator添加分隔線
menu.add_checkbutton添加確認按鈕,與add_radiobutton用法相同,效果為:點擊時打鉤(variable參數決定綁定變量)
delete刪除
12、彈窗
messagebox的方法:
showerror錯誤提示對話框showinfo信息提示對話框
showwarning警告對話框askokcansel確認或取消;有返回值True、False
askquestion回答問題;有返回值yes、noaskretrycansel重試或取消;有返回值True、False
askyesno回答是非題;有返回值True、Falseaskyesnocancel是、否或取消,有返回值True、False、None
messagebox._show函數的控制參數:
default ????????指定消息框按鈕;
icon ???????????指定消息框圖標;
message ???? 指定消息框所顯示的消息;
parent ?????????指定消息框的父組件;
title ??????????標題;
type ???????????類型;
simpledialog模塊參數:
title ??????????指定對話框的標題;
prompt ??????? 顯示的文字;
initialvalue ???指定輸入框的初始值;
filedialog 模塊參數:
filetype ?? ?指定文件類型;
initialdir ?指定默認目錄;
initialfile 指定默認文件;
title ??? ?指定對話框標題
colorchooser模塊參數:
initialcolor ? 指定初始化顏色;
title ????????? 指定對話框標題;
13、滾動條(Scrollbar)
與其他控件綁定;
1、將這些控件的yscrollcommand選項設置為scrollbar的set方法。
(Scrollbar使用set方法改變slder滑塊的位置)
2、將scrollbar的command選項設置為這些控件的yview方法。(控件使用yview或xview方法改變自身的視圖)
(由于控件代碼執行的先后性,所以借助config方法實現雙向關聯)
參數:
orient ???????????????????????? 方位:VERTICAL垂直;HORIZONTAL水平