Python圖形界面開發(二)窗口小部件
ps:參考文檔:tkinter文檔Tkdoc
菜鳥教程Python GUI編程(Tkinter)(點擊可直達) (我只是文檔搬運工^_^ )\
tkinter小部件
控件 | 描述 |
---|---|
Button | 按鈕控件;在程序中顯示按鈕。 |
Canvas | 畫布控件;顯示圖形元素如線條或文本 |
Checkbutton | 多選框控件;用於在程序中提供多項選擇框 |
Entry | 輸入控件;用於顯示簡單的文本內容 |
Frame | 框架控件;在屏幕上顯示一個矩形區域,多用來作爲容器 |
Label | 標籤控件;可以顯示文本和位圖 |
Listbox | 列表框控件;在Listbox窗口小部件是用來顯示一個字符串列表給用戶 |
Menubutton | 菜單按鈕控件,用於顯示菜單項。 |
Menu | 菜單控件;顯示菜單欄,下拉菜單和彈出菜單 |
Message | 消息控件;用來顯示多行文本,與label比較類似 |
Radiobutton | 單選按鈕控件;顯示一個單選的按鈕狀態 |
Scale | 範圍控件;顯示一個數值刻度,爲輸出限定範圍的數字區間 |
Scrollbar | 滾動條控件,當內容超過可視化區域時使用,如列表框。. |
Text | 文本控件;用於顯示多行文本 |
Toplevel | 容器控件;用來提供一個單獨的對話框,和Frame比較類似 |
Spinbox | 輸入控件;與Entry類似,但是可以指定輸入範圍值 |
PanedWindow | PanedWindow是一個窗口布局管理的插件,可以包含一個或者多個子控件。 |
LabelFrame | labelframe 是一個簡單的容器控件。常用與複雜的窗口布局。 |
MessageBox | 用於顯示你應用程序的消息框。 |
小部件參數
(以按鈕部件爲例)
Tkinter 按鈕組件用於在 Python 應用程序中添加按鈕,按鈕上可以放上文本或圖像,按鈕可用於監聽用戶行爲,能夠與一個 Python 函數關聯,當按鈕被按下時,自動調用該函數。
語法格式
button = tkinter.Button(parent, option=value, ...)
- parent:按鈕的父節點
- option:可選項,即該按鈕的可設置的屬性。這些選項可以用鍵 = 值的形式設置,並以逗號分隔。
可選項及描述如下:
可選項 | 描述 | 值/類型 |
---|---|---|
activebackground | 當鼠標點擊時,按鈕的背景色 | “red”,“blue”,"black"等/字符串 |
activeforeground | 按鈕按下時文字顏色 | 同上 |
bg | 按鈕的背景顏色 | 同上 |
fg | 按鈕文字顏色 | 同上 |
bd | 按鈕邊框大小 | 2(默認)/數字 |
command | 按鈕關聯的函數,當按鈕被點擊時,執行該函數 | 函數名 |
font | 文本字體 | “宋體”/字體名 |
underline | 文本下劃線 | 0/數字 |
height | 按鈕的高度 | 數字(單位:像素點) |
width | 按鈕的寬度 | 同上 |
padding | 按鈕內容與按鈕四周邊緣的距離 | 同上 |
padx | X軸方向上按鈕內容與邊緣的距離 | 同上 |
pady | Y軸方向上按鈕內容與邊緣的距離 | 同上 |
image | 按鈕上要顯示的圖片 | 圖像 |
justify | 顯示多行文本時的對齊方式 | “left”,“right”,“center” |
anchor | 按鈕文本的位置 | “n”,“ ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center”(默認) |
relief | 邊框樣式,設置控件的顯示效果 | “flat”(默認),“sunken”,“raised”,“groove”,“ridge” |
state | 按鈕狀態 | “normal”(默認),“active”,“disabled” |
text | 按鈕的文本內容 | 字符串 |
示例
import tkinter
from tkinter import messagebox
def pressed():
messagebox.showinfo(title="help",message="hello")
mainwindow = tkinter.Tk()
button = tkinter.Button(mainwindow,command=pressed,text="hit me\nhelp me 1234 44444",activebackground="blue",activeforeground="black",bg="yellow",fg="blue",bd=10\
,font="黑體",justify="left",width=50)
button ['anchor']="se"
button.grid()
mainwindow.mainloop()