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, and text窗口部件的標準滾動條; |
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,水平+垂直),是否在某個方向充滿窗口 | |
expand | 1可擴展,0不可擴展,代表控件是否會隨窗口縮放 |
grid組件使用行列的方法放置組件的位置,參數有:
column: | 組件所在的列起始位置; | |
columnspan: | 組件的列寬;跨列數 | |
row: | 組件所在的行起始位置; | |
|
rowspan: |
組件的行寬;rowspam=3 跨3行 |
sticky | 對齊方式:NSEW(北南東西)上下左右 | |
padx、pady | x方向間距、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、no | askretrycansel | 重試或取消;有返回值True、False |
askyesno | 回答是非題;有返回值True、False | askyesnocancel | 是、否或取消,有返回值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水平