這篇文章帶給大家的內容是關於tkinter控制項屬性大全,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
1.Button 按鈕。類似標籤,但提供額外的功能,例如滑鼠掠過、按下、釋放以及鍵盤操作/事件
2.Canvas 畫布。提供繪圖功能(直線、橢圓、多邊形、矩形) ;可包含圖形或點陣圖
3.Checkbutton 選擇按鈕。一組方框,可以選擇其中的任一(類似 HTML 中的 checkbox)
4.Entry 文字方塊。單行文字域,用來收集鍵盤輸入(類似 HTML 中的 text)
5.Frame 框架。包含其他組件的純容器
6.Label 標籤。用來顯示文字或圖片
7.Listbox 列錶框。一個選項清單,使用者可以從中選擇
8.Menu 選單。點下選單按鈕後彈出的一個選項清單,使用者可以從中選擇
9.Menubutton 選單按鈕。用來包含選單的元件(有下拉式、層疊式等)
10.Message 訊息框。類似標籤,但可以顯示多行文字
11.Radiobutton 單選按鈕。一組按鈕,其中只有一個可被「按下」 (類似 HTML 中的 radio)
12.Scale 進度條。線性「滑桿」元件,可設定起始值和結束值,會顯示目前位置的精確值
13.Scrollbar 捲軸。對其支援的元件(文字網域、畫布、列錶框、文字方塊)提供捲動功能
14.Text 文字網域。多行文字區域,可用於收集(或顯示)使用者輸入的文字(類似 HTML 中的 textarea)
15.Toplevel 頂級。類似框架,但提供一個獨立的窗口容器。
Tkinter支援15個核心的視窗元件,這個15個核心視窗元件類別清單如下:
視窗元件及說明:
Button:
一個簡單的按鈕,用來執行一個簡單的按鈕,用來執行一個簡單的按鈕指令的操作。
Canvas:
組織圖形。這個部件可以用來繪製圖表和圖,創建圖形編輯器,實現定制視窗部件。
Checkbutton:
代表一個變量,它有兩個不同的值。點擊這個按鈕將會在這兩個值間切換。
Entry:
文字輸入域。
Frame:
一個容器視窗部件。幀可以有邊框和背景,當創建一個應用程式或dialog(對話)版面時,幀被用來組織其它的視窗部件。
Label:
顯示一個文字或圖像。
Listbox:
顯示供選方案的清單。 listbox能夠被設定來得到radiobutton或checklist的行為。
Menu:
選單條。用來實現下拉和彈出式選單。
Menubutton:
選單按鈕。用來實作下拉式選單。
Message:
顯示一文字。類似label視窗部件,但是能夠自動地調整文字到給定的寬度或比率。
Radiobutton:
代表一個變量,它可以有多個值中的一個。點擊它將為這個變數設定值,並且清除與這相同變數相關的其它radiobutton。
Scale:
允許你透過滑桿來設定一數字值。
Scrollbar:
為配合使用canvas, entry, listbox, and text視窗元件的標準捲軸。
Text:
格式化文字顯示。允許你用不同的樣式和屬性來顯示和編輯文字。同時支援內嵌圖象和視窗。
Toplevel:
一個容器視窗部件,以一個單獨的、最上面的視窗顯示。
注意在Tkinter中視窗部件類別沒有分級;所有的視窗部件類別在樹中都是兄弟。
所有這些視窗元件提供了Misc和幾何管理方法、組態管理方法和元件自己定義的另外的方法。此外,Toplevel類別也提供視窗管理介面。這意味一個典型的視窗部件類別提供了大約150種方法。
Button視窗部件
Button(按鈕)視窗部件是一個標準的Tkinter視窗部件,用來實現各種按鈕。按鈕能夠包含文字或圖象,並且你能夠將按鈕與一個Python函數或方法相關聯。當這個按鈕被按下時,Tkinter自動呼叫相關聯的函數或方法
按鈕只能顯示一種字體,但此文字可以跨行。另外,這個文字中的一個字母可以有下劃線,例如標明一個快捷鍵。預設情況,Tab鍵用於將焦點移動到按鈕部件。
一、那麼什麼時候用按鈕零件呢?
簡而言之,按鈕部件用來讓使用者說“馬上給我執行這個任務”,通常我們用顯示在按鈕上的文字或圖象來提示。按鈕通常用在工具列或應用程式視窗中,並且用來接收或忽略輸入在對話方塊中的資料。
關於按鈕和輸入的資料的配合,可以參考Checkbutton和Radiobutton零件。
二、樣式
普通的按鈕很容易被創建,僅指定按鈕的內容(文字、點陣圖、圖象)和一個當按鈕被按下時的回呼函數即可:
b = Button(master, text="OK", command=self.ok)
沒有回呼函數的按鈕是沒有用的,當你按下這個按鈕時它什麼也不做。你可能在開發一個應用程式的時候想實現這個按鈕,例如為了不干擾你的beta版的測試者:
b = Button(master, text="Help", state=DISABLED)
如果你沒有指定尺寸,按鈕的大小將正好能夠容納它的內容。你可以用padx和pady選項來增加內容與按鈕邊框的間距。你也可以用height和width 選項來明確設定按鈕的尺寸。如果你在按鈕中顯示文本,那麼這些選項將以文本的單位為定義按鈕的尺寸。如果你替而代之顯示圖象,那麼按鈕的尺寸將是像素 (或其它的螢幕單位)。你實際上甚至能夠用像素單位來定義文字按鈕的尺寸,但這可能會帶來意外的結果。以下是指定尺寸的一段範例程式碼:
f = Frame(master, height=32, width=32)
f.pack_propagate(0) # don't sh
(0) # don't sh
. ="Sure!")
b.pack(fill=BOTH, expand=1)
按鈕能夠顯示多行文字(但只能用一種字體)。 你可以使用多行或wraplength選項來使按鈕自己調整文字。當調整文字時,使用anchor,justify,也可加上padx選項來得到你所希望的格式。一個例子如下:
b = Button(master, text=longtext, anchor=W, justify=LEFT, padx=2)
為了讓一個普通的按鈕看起來像凹入的,例如你想要實現你實現某種類型的工具框,你可簡單地將relief的值從"RAISED"改為"SUNKEN:
b.config(relief=SUNKEN)
你也可能想改變背景。注意:一個大概更好的解決方案是使用一個Checkbutton或Radiobutton其indicatoron選項的值設定為false:
b = Checkbutton(master, image=bold, variable=var, indicatoron=0)
視窗部件支援標準的Tkinter視窗部件接口,加上下面的方法:
flash():頻繁重畫按鈕,使其在活動和普通樣式下切換。
invoke() :調用與按鈕相關聯的指令。
下面的方法與你實作自己的按鈕綁定有關:
tkButtonDown(), tkButtonEnter(), tkButtonInvoke(), tkButtonLeave(), tkButton 在事件綁定中,所有這些方法接收0個或多個形參。
四、選項
Button視窗元件支援下列的選項:
activebackground, activeforeground## 類型:顏色;#of類型:顏色;#o#說明:當按鈕啟動時所使用的顏色。
anchor
類型:常數;
說明:控制按鈕上內容的位置。使用N, NE, E, SE, S, 按鈕上內容的位置。使用N, NE, E, SE, S, NW, or CENTER這些值之一。預設值是CENTER。
background (bg), foreground (fg)
類型:顏色;
預設值說明:按鈕的預設值與特定平台顏色相關。 ## bitmap
類型:點陣圖;
說明:顯示在視窗元件中的位圖。如果image選項被指定了,則這個選項被忽略。下面的位圖在所有平台上都有效:error , gray75, gray50, gray25, gray12, hourglass, info, questhead, question, 與 warning.
這後面附加的位圖只在Macintosh上有效:document, stationery, edition, application, accessory, folder, pfolder, trash, floppy, application, accessory, folder, pfolder, trash, floppy, ramdisk, top ferences, queryf#你與你也 p.可以從一個XBM檔案裝載位圖。只需要在XBM檔案名稱前面加上一個前綴@,例如"@sample.xbm"。
borderwidth (bd)
型別:整數;
說明:按鈕邊框的寬度。預設值與特定平台相關。但通常是1或2像素
command
類型:回呼;### 說明:當按鈕按下時所呼叫的一個函數或方法。所回呼的可以是一個函數、方法或別的可呼叫的Python物件
cursor
類型:遊標;
說明:當滑鼠移到按鈕上時所顯示的遊標。
default
類型:常數;
說明:若設定了,則按鈕為預設按鈕。注意這個語法在Tk 8.0b2中已改變。
disabledforeground
類型:顏色;
說明:按鈕無效時的顏色。
font
型別:字型;
說明:按鈕所使用的字型。按鈕只能包含一種字體的文字。
highlightbackground, highlightcolor
類型:顏色;
說明:控制焦點所在的高亮邊框的顏色。當窗口部件獲得焦點的時候,邊框為highlightcolor所指定的顏色。否則邊框為highlightbackground所指定的顏色。預設值由系統所定。
highlightthickness
類型:距離;
說明:控制焦點所在的高亮邊框的寬度。預設值通常是1或2像素。
image
類型:圖像;
說明:部件中所顯示的圖像。如果指定,則text和bitmap選項將被忽略。
justify
型別:常數;
說明:定義多行文字如何對齊。可取值有:LEFT, RIGHT, 或 CENTER。
padx, pady
類型:距離;
說明:指定文字或圖像與按鈕邊框之間的間距。
relief
型式:常數;
說明:邊框的裝飾。通常按鈕按下時是凹陷的,否則凸起。另外的可能取值有GROOVE, RIDGE, 和 FLAT。
state
型式:常數;
說明:按鈕的狀態:NORMAL, ACTIVE 或 DISABLED。預設值為NORMAL。
takefocus
類型:標誌;
說明:顯示使用者可以Tab鍵將焦點移到這個按鈕上。預設值是一個空字串,意思是如果按鈕有按鍵綁定的話,它可以透過所綁定的按鍵來獲得焦點。
text
類型:字串;
說明:按鈕中顯示的文字。文字可以是多行。如果bitmaps或image選項被使用,則text選項被忽略。
textvariable
類型:變數;
說明:與按鈕相關的Tk變數(通常是字串變數)。如果這個變數的值改變,那麼按鈕上的文字就相應更新。
underline
類型:整數;
說明:在文字標籤中哪個字元加底線。預設值為-1,意思是沒有字元加底線。
width, height
類型:距離;
說明:按鈕的尺寸。如果按鈕顯示文本,尺寸使用文本的單位。如果按鈕顯示圖象,尺寸以像素為單位(或螢幕的單位)。如果尺寸沒指定,它將根據按鈕的內容來計算。
wraplength
類型:距離;
說明:決定一個按鈕的文字何時調整為多行。它以螢幕的單位為單位。預設不調整。
Mixins
Tkinter模組提供了對應於Tk中的各種視窗元件類型的類別和一定數量的mixin和別的幫助類別(mixin是一個類,被設計來使用多態繼承與其它的類別結合)。當你使用Tkinter時,你不會直接存取mixin類別。
一、實作mixins
透過root視窗和視窗部件類,Misc類被用作mixin。它提供了大量的Tk和視窗相關服務,這些服務對所有Tkinter核心視窗零件者都有效。這些透過委託完成;視窗部件僅直接要求適當的內部物件。
Wm類別透過root視窗和頂級視窗元件類別被用作mixin。透過委託它提供了視窗管理服務。
使用委託像這樣簡化你的應用程式程式碼:一旦你有一視窗部件,你能夠使用這個視窗部件的實例的方法存取Tkinter的所有部分。
二、Geometry(幾何學)與mixins
Grid,Pack,Place這些類別透過視窗元件類別被用作mixins。透過委託,它們也提供了存取不同幾何管理的支援。
下方是Geometry Mixins的清單及說明:
管理器及說明:
Grid:grid幾何管理器可讓您透過在一個二維網格中組織視窗元件來建立類似表格的版面。
Pack:pack幾何管理器透過在一個訊框中把視窗元件包裝到一個父元件中來建立一個版面。為了對視窗元件使用這個幾何管理器,我們在這個視窗元件上使用pack方法來整合。
Place:place幾何管理器讓你明確地將一個視窗元件放到給定的位置。要使用這個幾何管理器,需使用place方法。
三、視窗元件設定管理
Widget類別使用 geometry mixins來混合Misc類,並透過cget和configure方法增加設定管理,也可以透過局部的字典介面。
視窗元件的設定
要設定一個視窗元件的外觀,你用選項比使用方法呼叫好。典型的選項包括text、color、size、command等等。處理選項,所有的核心視窗元件執行相同的設定介面:
設定介面
widgetclass(master, option=value, ...) => widget ## 說明: c => widget ## 說明:# 部件的一個實例,這個實例作為給定的master的孩子,並且使用給定的選項。所有的選項都有預設值,因此在簡單的情況下,你只需要指定這個 master。如果你想的話,你也可以不指定master;Tkinter這時會使用最近建立的root視窗當master。注意這個name選項僅能 在視窗元件被建立時設定。
cget(option) => string
說明:
傳回一個選項的目前值。選項的名字和回傳值都是字串。要得到name選項,使用str(widget)代替。
configure(option=value, ...), config(option=value, ...)
說明:
設定一個或多個選項(使用關鍵字參數給定)。
注意一些選項的名字與Python中的保留字相同(class,from等)。要使用這些作為關鍵字參數,只需要在這些選項名稱後面加上劃線(class_,from_)。注意你不能用此方法來設定name選項;name選項只能在視窗元件被建立時設定。
為了方便起見,視窗元件也實作一個局部的字典介面。 __setitem__ 方法映射configure,而__getitem__方法映射cget。你可以使用下面的語法來設定和詢問選項:
value = widget[option]
widget[option] = value
注意每個賦值中造成一個對Tk的呼叫。如果你希望去改變多個選項,單獨地呼叫(config或configure)去改變它們是一個好的主意。
這下面的字典方法也適用於視窗元件:
keys() => list
說明:
返回視窗元件中所有可以設定的選項的清單。 name選項不包括在這個清單中(它不能透過字典介面被查詢或修改)。
向後相容性
關鍵字參數在Python1.3時被引入。之前,使用原始的Python字典將選項傳遞給視窗建構器和configure方法。原程式碼類似如下:
self.button = Button(frame, {"text": "QUIT", "fg": "red", "command": frame.quit})## "red", "command": frame.quit})## "red", "command": frame.quit})## ({"side": LEFT})
關鍵字參數語法較優雅且少容易發生錯誤。但是為了與存在的程式碼相容,Tkinter仍支援舊的語法。在新的程式中你不應再用老的語法,即使在某些情況下是很有吸引力的。例如,如果你建立了一個客製化的視窗元件,它需要沿著它的父類別傳遞設定選項,你的程式碼可能如下:
def __init__(self, master, **kw):
Canvas.**kw):
Canvas.__init__ (self, master, kw) # kw 是一個字典
上面的程式碼在目前版本的Tkinter下運作的很好,但是它在將來的版本下可能無法運作。一個常見的方法是使用apply函數:
def __init__(self, master, **kw):
apply(Canvas.__init__, (self, master), apply(Canvas.__init__, (self, master), apply(Canvas.__init__, (self, master), 函數(一個未約束的方法),一個帶有參數的元組(它必須包括self,因為我們呼叫一個未約束的方法),一個可選的,提供了關鍵字參數的字典。
視窗部件的樣式之顏色
所有的Tkinter標準視窗部件提供了一套樣式設定選項,這讓你可以去修改這些視窗部件的外觀如顏色、字體和其它的可視外觀。
顏色
大型視窗元件都允許你指定視窗元件和文字的顏色,這可以使用background和foreground選項。要指定顏色,你可以使用顏色名,也可以使用紅色、綠色、藍色組合。
1、顏色名稱
Tkinter 包含一個色彩資料庫,它將色彩名稱對應到對應的RGB值。這個資料庫包括了通常的名稱如Red, Green, Blue, Yellow, 和 LightBlue,也可使用外來的如Moccasin,PeachPuff等等。在X window系統上,顏色名稱由X server定義。你能夠找到 一個名為xrgb.txt的文件,它包含了一個由顏色名稱和對應RGB值組成的清單。在Windows和Macintosh系統上,顏色名表內建於Tk中。
在Windows下,你可以使用Windows系統顏色(使用者可以透過控制面板來改變這些顏色):
SystemActiveBorder, SystemActiveCaption, SystemAppWorks emButtonText,
SystemCaptionText, SystemDisabledText, SystemHighlight, SystemHighlightText,
SystemInactiveBorder, SystemInactiveCaption, SystemInactive emWindowFrame, SystemWindowText。
在Macintosh上,下面的系統顏色是有效的:
SystemButtonFace, SystemButtonFrame, SystemButtonText, SystemHighlight, SystemHighlightText SystemMenu, SystemHighlight, SystemHighlightText SystemWindowBody。
顏色名是大小寫不敏感的。許多顏色名詞與詞之間有無格都有效。例如"lightblue", "light blue", 和
"Light Blue"都是相同顏色。
2、RGB格式
如果你需要明確地指定顏色名,你可以使用以下格式的字串:
#RRGGBB
RR, GG, BB 分別是red,greenBB
RR, GG, BB 分別是red,green和blue值的十六進位表示。以下的範例示範如何將一個色彩三元組轉換為
一個Tk顏色格式:
tk_rgb = "# x x x" % (128, 192, 200)## 用形如"#RGB"和"rrrrggggbbbb"去分別指定16和65536程度之間的值。
你可以使用視窗元件的winfo_rgb方法來將一個代表顏色的字串(名字或RGB格式)轉換為一個三元組:
rgb = widget.winfo_rgb("red")## green, blue = rgb[0]/256, rgb[1]/256, rgb[2]/256
注意winfo_rgb返回16位元的RGB值,範圍在0~65535之間。要將它們對應到更通用的0~255範圍內,你必須將每個值都除以256(或將它們向右移8位元)。
以上是這有可能是最完整的tkinter控制項屬性大全的詳細內容。更多資訊請關注PHP中文網其他相關文章!