python中tkinter的使用(控件整理)(一)

原文鏈接:https://blog.csdn.net/memory_qianxiao/article/details/81080654

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水平

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章