tkinter.tix --- TK擴(kuò)展包?

源代碼: Lib/tkinter/tix.py

3.6 版后已移除: 這個(gè) TK 擴(kuò)展已無(wú)人維護(hù)所以請(qǐng)不要在新代碼中使用。 請(qǐng)改用 tkinter.ttk。


tkinter.tix (Tk Interface Extension) 模塊提供了更豐富的額外可視化部件集。 雖然標(biāo)準(zhǔn) Tk 庫(kù)包含許多有用的部件,但還遠(yuǎn)不夠完備。 tkinter.tix 庫(kù)提供了標(biāo)準(zhǔn) Tk 所缺少的大量常用部件: HList, ComboBox, Control (即 SpinBox) 以及一系列可滾動(dòng)的部件。 tkinter.tix 還包括了大量在多種不同領(lǐng)域的應(yīng)用中很常用的部件: NoteBook, FileEntry, PanedWindow 等等;總共有超過(guò) 40 種。

使用這些新增部件,你可以為應(yīng)用程序引入新的交互技術(shù),創(chuàng)建更好用且更直觀的用戶界面。 你在設(shè)計(jì)應(yīng)用程序時(shí)可以通過(guò)選擇最適合的部件來(lái)匹配你的應(yīng)用程序和用戶的特殊需求。

參見

Tix Homepage

Tix 的主頁(yè)。 其中包括附加文檔和下載資源的鏈接。

Tix Man Pages

在線版本的指南頁(yè)面和參考材料。

Tix Programming Guide

在線版本的程序員參考材料。

Tix Development Applications

開發(fā) Tix 和 Tkinter 程序的 Tix 應(yīng)用。 Tide 應(yīng)用在 Tk 在 Tkinter 下工作,并包括了 TixInspect,這是一個(gè)可遠(yuǎn)程修改和調(diào)試 Tix/Tk/Tkinter 應(yīng)用的檢查工具。

使用 Tix?

class tkinter.tix.Tk(screenName=None, baseName=None, className='Tix')?

最常用于代表應(yīng)用主窗口的最高層級(jí)部件。 它具有一個(gè)相關(guān)聯(lián)的 Tcl 解釋器。interpreter.

tkinter.tix 模塊中的類子類化了 tkinter 中的類。 前者會(huì)導(dǎo)入后者,因此 tkinter.tix 要使用 Tkinter,你所要做的就是導(dǎo)入一個(gè)模塊。 通常,你可以只導(dǎo)入 tkinter.tix,并將最高層級(jí)調(diào)用由 tkinter.Tk 替換為 tix.Tk:

from tkinter import tix
from tkinter.constants import *
root = tix.Tk()

要使用 tkinter.tix,你必須安裝有 Tix 部件,通常會(huì)與你的 Tk 部分一起安裝。 要測(cè)試你的安裝,請(qǐng)嘗試以下代碼:

from tkinter import tix
root = tix.Tk()
root.tk.eval('package require Tix')

Tix 部件?

Tix 將 40 多個(gè)部件類引入到 tkinter 工具集中。

基本部件?

class tkinter.tix.Balloon?

Balloon 是在部件上彈出用于提供幫助信息的部件。 當(dāng)用戶將光標(biāo)移到一個(gè)與 Balloon 部件綁定的部件內(nèi)時(shí),將在屏幕上彈出一個(gè)顯示描述性消息的小窗口。

class tkinter.tix.ButtonBox?

ButtonBox 部件會(huì)創(chuàng)建一組按鈕框,例如常用的 Ok Cancel 按鈕框。

class tkinter.tix.ComboBox?

ComboBox 部件類似于 MS Windows 中的組合框控件。 用戶可以通過(guò)在輸入框子部件中輸入或是在列表框子部件中選擇來(lái)選定一個(gè)選項(xiàng)。

class tkinter.tix.Control?

Control 部件又名 SpinBox 部件。 用戶可通過(guò)點(diǎn)按兩個(gè)方向鍵或直接輸入內(nèi)容來(lái)調(diào)整數(shù)值。 更新的數(shù)值將被檢查是否在用戶定義的上下限之內(nèi)。

class tkinter.tix.LabelEntry?

LabelEntry 部件將輸入框部件和標(biāo)簽打包為一個(gè)部件。 它可被用來(lái)簡(jiǎn)化 "輸入表單" 類界面的創(chuàng)建。

class tkinter.tix.LabelFrame?

LabelFrame 部件將框架部件和標(biāo)簽打包為一個(gè)部件。 要在一個(gè) LabelFrame 部件中創(chuàng)建部件,應(yīng)當(dāng)創(chuàng)建與 frame 子部件相關(guān)聯(lián)的新部件并在 frame 子部件中管理它們。

class tkinter.tix.Meter?

Meter 部件可用來(lái)顯示可能會(huì)耗費(fèi)很長(zhǎng)時(shí)間運(yùn)行的后臺(tái)任務(wù)的進(jìn)度。

class tkinter.tix.OptionMenu?

OptionMenu 可創(chuàng)建一個(gè)選項(xiàng)按鈕菜單。

class tkinter.tix.PopupMenu?

PopupMenu 部件可被用來(lái)替代 tk_popup 命令。 Tix PopupMenu 部件的優(yōu)勢(shì)在于它所需要的應(yīng)用操縱代碼較少。

class tkinter.tix.Select?

Select 控件是一組按鈕子控件的容器。 它可被用來(lái)為用戶提供單選鈕或復(fù)選鈕形式的選項(xiàng)。

class tkinter.tix.StdButtonBox?

StdButtonBox 部件是一個(gè)用于 Motif 風(fēng)格對(duì)話框的標(biāo)準(zhǔn)按鈕組。

文件選擇器?

class tkinter.tix.DirList?

DirList 部件顯示一個(gè)目錄、它的上級(jí)目錄和子目錄的列表視圖。 用戶可以選擇列表中顯示的某個(gè)目錄或切換到另一個(gè)目錄。

class tkinter.tix.DirTree?

DirTree 部件顯示一個(gè)目錄、它的上級(jí)目錄和子目錄的樹狀視圖。 用戶可以選擇其中顯示的某個(gè)目錄或切換到另一個(gè)目錄。

class tkinter.tix.DirSelectDialog?

DirSelectDialog 部件以對(duì)話框窗口形式表示文件系統(tǒng)中的目錄。 用戶可以使用該對(duì)話框窗口在文件系統(tǒng)中漫游以選擇所需的目錄。

class tkinter.tix.DirSelectBox?

DirSelectBox 類似于標(biāo)準(zhǔn)的 Motif(TM) 目錄選擇框。 它通常用于讓用戶選擇一個(gè)目錄。 DirSelectBox 會(huì)將最近選擇的目錄存放在一個(gè) ComboBox 部件中以便可以再次快速地選擇它們。

class tkinter.tix.ExFileSelectBox?

ExFileSelectBox 部件通常是嵌入在 tixExFileSelectDialog 部件中。 它為用戶提供了一種方便的選擇文件方法。 ExFileSelectBox 部件的風(fēng)格非常類似于 MS Windows 3.1 中的標(biāo)準(zhǔn)文件對(duì)話框。

class tkinter.tix.FileSelectBox?

FileSelectBox 類似于標(biāo)準(zhǔn)的 Motif(TM) 文件選擇框。 它通常用于讓用戶選擇一個(gè)文件。 FileSelectBox 會(huì)將最近選擇的文件存放在一個(gè) ComboBox 部件中以便可以再次快速地選擇它們。

class tkinter.tix.FileEntry?

FileEntry 部件可被用于輸入一個(gè)文件名。 用戶可以手動(dòng)輸入文件名。 或者用戶也可以按輸入框旁邊的按鈕控件,這將打開一個(gè)文件選擇對(duì)話框。

層級(jí)式列表框?

class tkinter.tix.HList?

HList 部件可被用于顯示任何具有層級(jí)結(jié)構(gòu)的數(shù)據(jù),例如文件系統(tǒng)目錄樹。 其中的列表?xiàng)l目帶有縮進(jìn)并按照它們?cè)趯蛹?jí)中的位置以分支線段相連。

class tkinter.tix.CheckList?

CheckList 部件可顯示一個(gè)供用戶選擇的條目列表。 CheckList 的功能類似于 Tk 復(fù)選鈕或單選鈕部件,不同之處在于它能夠處理比復(fù)選鈕或單選鈕多得多的條目。

class tkinter.tix.Tree?

Tree 部件可被用于以樹形顯示具有層級(jí)結(jié)構(gòu)的數(shù)據(jù)。 用戶可以通過(guò)打開或關(guān)閉部分樹枝來(lái)調(diào)整樹形視圖。

表格式列表框?

class tkinter.tix.TList?

TList 部件可被用于以表格形式顯示數(shù)據(jù)。 TList 部件中的列表?xiàng)l目類似于 Tk 列表框部件中的條目。 主要差異在于 (1) TList 部件能以二維格式顯示列表?xiàng)l目 (2) 你可以在列表?xiàng)l目中使用圖片以及多種顏色和字體。

管理器部件?

class tkinter.tix.PanedWindow?

PanedWindow 部件允許用戶交互式地控制多個(gè)面板的大小。 這些面板可以垂直或水平地排列。 用戶通過(guò)拖動(dòng)兩個(gè)面板間的控制柄來(lái)改變面板的大小。

class tkinter.tix.ListNoteBook?

ListNoteBook 部件非常類似于 TixNoteBook 部件:它可被用于在有限空間內(nèi)顯示多個(gè)窗口,就像是一個(gè)“筆記本”。 筆記本可分為許多頁(yè)面(窗口)。 同一時(shí)刻只能顯示其中一個(gè)頁(yè)面。 用戶可以通過(guò)在 hlist 子部件中選擇所需頁(yè)面的名稱來(lái)切換這些頁(yè)面。

class tkinter.tix.NoteBook?

NoteBook 部件可被用于在有限空間內(nèi)顯示多個(gè)窗口,就像是一個(gè)“筆記本”。 筆記本可分為許多頁(yè)面。 同一時(shí)刻只能顯示其中一個(gè)頁(yè)面。 用戶可以通過(guò)選擇 NoteBook 部件頂端的可視化“選項(xiàng)卡”來(lái)切換這些頁(yè)面。

圖像類型?

tkinter.tix 模塊增加了:

  • pixmap 功能提供給所有 tkinter.tixtkinter 部件以使用 XPM 文件創(chuàng)建彩色圖像。

  • Compound 圖像類型可被用于創(chuàng)建由許多橫行構(gòu)成的圖像;每一行都包含從左至右排列的一組條目(文本、位圖、圖像或空白)。 例如,某個(gè)組合圖像可被用于在一個(gè) Tk Button 部件內(nèi)同時(shí)顯示一張位圖和一個(gè)文本字符串。

其他部件?

class tkinter.tix.InputOnly?

InputOnly 部件可接收來(lái)自用戶的輸入,此功能可通過(guò) bind 命令實(shí)現(xiàn)(僅限 Unix)。

表單布局管理器?

tkinter.tix 還額外提供了以下部件來(lái)增強(qiáng) tkinter 的功能:

class tkinter.tix.Form?

Form 布局管理器是以針對(duì)所有 Tk 部件的附加規(guī)則為基礎(chǔ)的。

Tix 命令?

class tkinter.tix.tixCommand?

Tix 命令 提供了對(duì) Tix 內(nèi)部狀態(tài)和 Tix 應(yīng)用程序上下文等雜項(xiàng)元素的訪問(wèn)。 大部分由這些方法控制的信息作為一個(gè)整體被發(fā)給應(yīng)用程序,或是發(fā)給一個(gè)屏幕或顯示區(qū)域,而不是某個(gè)特定窗口。

要查看當(dāng)前的設(shè)置,通常的用法是:

from tkinter import tix
root = tix.Tk()
print(root.tix_configure())
tixCommand.tix_configure(cnf=None, **kw)?

查詢或修改 Tix 應(yīng)用程序上下文的配置選項(xiàng)。 如果未指定任何選項(xiàng),則返回包含所有選項(xiàng)的字典。 如果指定了不帶值的選項(xiàng),則該方法返回描述指定選項(xiàng)的列表(如果未指定選項(xiàng)則此列表與所返回值對(duì)應(yīng)的子列表相同)。 如果指定了一個(gè)或多個(gè)選項(xiàng)-值對(duì),則該方法會(huì)將指定的選項(xiàng)修改為指定的值;在此情況下該方法將返回一個(gè)空字符串。 選項(xiàng)可以是配置選項(xiàng)中的任何一個(gè)。

tixCommand.tix_cget(option)?

返回由 option 給出的配置選項(xiàng)的當(dāng)前值。 選項(xiàng)可以是配置選項(xiàng)中的任何一個(gè)。

tixCommand.tix_getbitmap(name)?

在某個(gè)位圖目錄中定位名稱為 name.xpmname 的位圖文件(位圖目錄參見 tix_addbitmapdir() 方法)。 通過(guò)使用 tix_getbitmap(),你可以避免在你的應(yīng)用程序中硬編碼位圖文件的路徑名。 執(zhí)行成功時(shí),它返回位圖文件的完整路徑名,并帶有前綴字符 @。 返回值可被用于配置 Tk 和 Tix 部件的 bitmap 選項(xiàng)。

tixCommand.tix_addbitmapdir(directory)?

Tix 維護(hù)了一個(gè)列表以供 tix_getimage()tix_getbitmap() 方法在其中搜索圖像文件。 標(biāo)準(zhǔn)位圖目錄是 $TIX_LIBRARY/bitmaps。 tix_addbitmapdir() 方法向該列表添加了 directory。 通過(guò)使用此方法,應(yīng)用程序的圖像文件也可使用 tix_getimage()tix_getbitmap() 方法來(lái)定位。

tixCommand.tix_filedialog([dlgclass])?

返回可在來(lái)自該應(yīng)用程序的同不調(diào)用之間共享的選擇對(duì)話框。 此方法將在首次被調(diào)用時(shí)創(chuàng)建一個(gè)選擇對(duì)話框部件。 此后對(duì) tix_filedialog() 的所有調(diào)用都將返回該對(duì)話框。 可以傳入一個(gè)字符串形式的可選形參 dlgclass 來(lái)指明所需的選擇對(duì)話框類型。 可用的選項(xiàng)有 tix, FileSelectDialogtixExFileSelectDialog。

tixCommand.tix_getimage(self, name)?

在某個(gè)位圖目錄(參見上文的 tix_addbitmapdir() 方法)中定位名為 name.xpm, name.xbmname.ppm 的圖像文件。 如果存在多個(gè)同名文件(但擴(kuò)展名不同),則會(huì)按照 X 顯示的深度選擇圖像類型:?jiǎn)紊@示選擇 xbm 圖像而彩色顯示則選擇彩色圖像。 通過(guò)使用 tix_getimage(),你可以避免在你的應(yīng)用程序中硬編碼圖像文件的路徑名。 當(dāng)執(zhí)行成功時(shí),此方法將返回新創(chuàng)建圖像的名稱,它可被用于配置 Tk 和 Tix 部件的 image 選項(xiàng)。

tixCommand.tix_option_get(name)?

獲取由 Tix 方案機(jī)制維護(hù)的選項(xiàng)。

tixCommand.tix_resetoptions(newScheme, newFontSet[, newScmPrio])?

將 Tix 應(yīng)用程序的方案與字體集分別重置為 newSchemenewFontSet。 這只會(huì)影響調(diào)用此方法之后創(chuàng)建的部件。 因此,最好是在 Tix 應(yīng)用程序的任何部件被創(chuàng)建之前調(diào)用 resetoptions 方法。

可以給出可選的形參 newScmPrio 來(lái)重置由 Tix 方案所設(shè)置的 Tk 選項(xiàng)的優(yōu)先級(jí)。

由于 Tk 處理 X 選項(xiàng)數(shù)據(jù)庫(kù)的特別方式,在 Tix 被導(dǎo)入并初始化之后,將無(wú)法再使用 tix_config() 方法來(lái)重置顏色方案和字體集。 而必須要使用 tix_resetoptions() 方法。