"tkinter.tix" --- TK扩展包
**************************

**源代码:** Lib/tkinter/tix.py

自 3.6 版本弃用: 这个 TK 扩展已无人维护所以请不要在新代码中使用。 请改
用 "tkinter.ttk"。

======================================================================

"tkinter.tix" (Tk Interface Extension) 模块提供了更丰富的额外可视化部
件集。 虽然标准 Tk 库包含许多有用的部件，但还远不够完备。
"tkinter.tix" 库提供了标准 Tk 所缺少的大量常用部件: "HList",
"ComboBox", "Control" (即 SpinBox) 以及一系列可滚动的部件。
"tkinter.tix" 还包括了大量在多种不同领域的应用中很常用的部件:
"NoteBook", "FileEntry", "PanedWindow" 等等；总共有超过 40 种。

使用这些新增部件，你可以为应用程序引入新的交互技术，创建更好用且更直观
的用户界面。 你在设计应用程序时可以通过选择最适合的部件来匹配你的应用
程序和用户的特殊需求。

参见:

  Tix 主页
     "Tix" 的主页。 其中包括附加文档和下载资源的链接。

  Tix 指南页面
     在线版本的指南页面和参考材料。

  Tix 编程指引
     在线版本的程序员参考材料。

  Tix 开发应用程序
     开发 Tix 和 Tkinter 程序的 Tix 应用。 Tide 应用在 Tk 在 Tkinter
     下工作，并包括了 **TixInspect**，这是一个可远程修改和调试
     Tix/Tk/Tkinter 应用的检查工具。


使用 Tix
========

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

   最常用于代表应用主窗口的最高层级部件。 它具有一个相关联的 Tcl 解释
   器。interpreter.

   "tkinter.tix" 模块中的类子类化了 "tkinter" 中的类。 前者会导入后者
   ，因此 "tkinter.tix" 要使用 Tkinter，你所要做的就是导入一个模块。
   通常，你可以只导入 "tkinter.tix"，并将最高层级调用由 "tkinter.Tk"
   替换为 "tix.Tk":

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

要使用 "tkinter.tix"，你必须安装有 Tix 部件，通常会与你的 Tk 部分一起
安装。 要测试你的安装，请尝试以下代码:

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


Tix 部件
========

Tix 将 40 多个部件 类引入到 "tkinter" 工具集中。


基本部件
--------

class tkinter.tix.Balloon

   Balloon 是在部件 上弹出用于提供帮助信息的部件 。 当用户将光标移到一
   个与 Balloon 部件绑定的部件内时，将在屏幕上弹出一个显示描述性消息的
   小窗口。

class tkinter.tix.ButtonBox

   ButtonBox 部件 会创建一组按钮框，例如常用的 "Ok Cancel" 按钮框。

class tkinter.tix.ComboBox

   ComboBox 部件 类似于 MS Windows 中的组合框控件。 用户可以通过在输入
   框子部件中输入或是在列表框子部件中选择来选定一个选项。

class tkinter.tix.Control

   Control 部件又名 "SpinBox" 部件。 用户可通过点按两个方向键或直接输
   内容来调整数值。 更新的数值将被检查是否在用户定义的上下限之内。

class tkinter.tix.LabelEntry

   LabelEntry 部件 将输入框部件和标签打包为一个部件。 它可被用来简化“
   输入表单”类界面的创建。

class tkinter.tix.LabelFrame

   LabelFrame 部件将框架部件和标签打包为一个部件。 要在一个 LabelFrame
   部件中创建部件，应当创建与 "frame" 子部件相关联的新部件并在 "frame"
   子部件中管理它们。

class tkinter.tix.Meter

   Meter 部件可用来显示可能会耗费很长时间运行的后台任务的进度。

class tkinter.tix.OptionMenu

   OptionMenu 可创建一个选项按钮菜单。

class tkinter.tix.PopupMenu

   PopupMenu 部件可被用来替代 "tk_popup" 命令。 "Tix" "PopupMenu" 部件
   的优势在于它所需要操纵的应用代码较少。

class tkinter.tix.Select

   Select 控件是一组按钮子控件的容器。 它可被用来为用户提供单选钮或复
   选钮形式的选项。

class tkinter.tix.StdButtonBox

   StdButtonBox 部件是一个用于 Motif 风格对话框的标准按钮组。


文件选择器
----------

class tkinter.tix.DirList

   DirList 部件显示一个目录、它的上级目录和子目录的列表视图。 用户可以
   选择表中显示的某个目录或切换到另一个目录。

class tkinter.tix.DirTree

   DirTree 部件显示一个目录、它的上级目录和子目录的树状视图。 用户可以
   选择其中显示的某个目录或切换到另一个目录。

class tkinter.tix.DirSelectDialog

   DirSelectDialog 部件以对话框窗口形式表示文件系统中的目录。 用户可以
   使用该对话框窗口在文件系统中漫游以选择所需的目录。

class tkinter.tix.DirSelectBox

   "DirSelectBox" 类似于标准的 Motif(TM) 目录选择框。 它通常用于让用户
   选择一个目录。 DirSelectBox 会将最近选择的目录存放在一个 ComboBox
   部件中以便可以再次快速地选择它们。

class tkinter.tix.ExFileSelectBox

   ExFileSelectBox 部件通常是嵌入在 tixExFileSelectDialog 部件中。 它
   为用户提供了一种方便的选择文件方法。 "ExFileSelectBox" 部件的风格非
   常类似于 MS Windows 3.1 中的标准文件对话框。

class tkinter.tix.FileSelectBox

   FileSelectBox 类似于标准的 Motif(TM) 文件选择框。 它通常用于让用户
   选择一个文件。 FileSelectBox 会将最近选择的文件存放在一个
   "ComboBox" 部件中以便可以再次快速地选择它们。

class tkinter.tix.FileEntry

   FileEntry 部件可被用于输入一个文件名。 用户可以手动输入文件名。 或
   者用户也可以按输入框旁边的按钮部件，这将打开一个文件选择对话框。


层级式列表框
------------

class tkinter.tix.HList

   HList 部件可被用于显示任何具有层级结构的数据，例如文件系统目录树。
   其中的列表条目带有缩进并按照排泄物的层级中的位置以分支线段相连。

class tkinter.tix.CheckList

   CheckList 部件可显示一个供用户选择的条目列表。 CheckList 的功能类似
   于 Tk 复选钮或单选钮部件，不同之处在于它能够处理比复选钮或单选钮多
   得多的条目。

class tkinter.tix.Tree

   Tree 部件可被用于以树形显示具有层级结构的数据。 用户可以通过打开或
   关闭部分树枝来调整树形视图。


表格式列表框
------------

class tkinter.tix.TList

   TList 部件可被用于以表格形式显示数据。 "TList" 部件中的列表条目类似
   Tk 列表框部件中的条目。 主要区别在于 (1) "TList" 部件能以二维格式显
   示列表条目 (2) 你可以在列表条目中使用图片以及多种颜色和字体。


管理器部件
----------

class tkinter.tix.PanedWindow

   PanedWindow 部件允许用户交互式地控件多个面板的大小。 这些面板可以垂
   直或水平地排列。 用户通过拖动两个面板间的控制柄来改变面板的大小。

class tkinter.tix.ListNoteBook

   ListNoteBook 部件非常类似于 "TixNoteBook" 部件：它可被用于在有限空
   间内显示多个窗口，就像是一个笔记本。 笔记本被分成许多重叠的页面（窗
   口）。 同一时刻只能显示其中一个页面。 用户可以通过在 "hlist" 子部件
   中选择所需页面的名称来切换这些页面。

class tkinter.tix.NoteBook

   NoteBook 部件可被用于在有限空间内显示多个窗口，就像是一个笔记本。
   笔记本被分成许多重叠的页面。 同一时刻只能显示其中一个页面。 用户可
   以通过选择 NoteBook 部件顶端的可视化“选项卡”来切换这些页面。


图像类型
--------

"tkinter.tix" 模块增加了:

* pixmap 功能提供给所有 "tkinter.tix" 和 "tkinter" 部件以使用 XPM 文件
  创建彩色图像。

* Compound 图像类型可被用于创建由许多水平行构成的图像；每一行都包含从
  左至右排列的一组条目（文本、位图、图像或空白）。 例如，某个组合图像
  可被用于在一个 Tk "Button" 部件内同时显示一张位图和一个文本字符串。


其他部件
--------

class tkinter.tix.InputOnly

   InputOnly 部件用于接受来自用户的输入，此功能可通过 "bind" 命令实现
   （仅限 Unix）。


表单布局管理器
--------------

"tkinter.tix" 还额外提供了以下部件来增强 "tkinter" 的功能:

class tkinter.tix.Form

   Form 布局管理器是以针对所有 Tk 部件的附加规则为基础的。


Tix 命令
========

class tkinter.tix.tixCommand

   tix 命令 提供了对 "Tix" 内部状态和 "Tix" 应用程序上下文等杂项元素的
   访问。 大部分由这些方法控制的信息会作为一个整体发给应用程序，或是发
   给一个屏幕或显示区域，而不是某个特定窗口。

   要查看当前的设置，通常的用法是:

      from tkinter import tix
      root = tix.Tk()
      print(root.tix_configure())

tixCommand.tix_configure(cnf=None, **kw)

   查询或修改 Tix 应用程序上下文的配置选项。 如果未指定任何选项，则返
   回包含所有选项的字典。 如果指定了不带值的选项，则该方法返回描述指定
   选项的列表（如果未指定选项则此列表与所返回值对应的子列表相同）。 如
   果指定了一个或多个选项-值对，则该方法会将指定的选项修改为指定的值；
   在此情况下该方法将返回一个空字符串。 选项可以是配置选项中的任何一个
   。

tixCommand.tix_cget(option)

   返回由 *option* 给出的配置选项的当前值。 选项可以是配置选项中的任何
   一个。

tixCommand.tix_getbitmap(name)

   在某个位图目录中定位名称为 "name.xpm" 或 "name" 的位图文件（位图目
   录参见 "tix_addbitmapdir()" 方法）。 通过使用 "tix_getbitmap()"，你
   可以避免在你的应用程序中硬编码位图文件的路径名。 执行成功时，它返回
   位图文件的完整路径名，并带有前缀字符 "@"。 返回值可被用于配置 Tk 和
   Tix 部件的 "bitmap" 选项。

tixCommand.tix_addbitmapdir(directory)

   Tix 维护了一个列表以供 "tix_getimage()" 和 "tix_getbitmap()" 方法在
   其中搜索图像文件。 标准位图目录是 "$TIX_LIBRARY/bitmaps"。
   "tix_addbitmapdir()" 方法向该列表添加了 *directory*。 通过使用此方
   法，应用程序的图像文件也可使用 "tix_getimage()" 或
   "tix_getbitmap()" 方法来定位。

tixCommand.tix_filedialog([dlgclass])

   返回可在来自该应用程序的同不调用之间共享的选择对话框。 此方法将在首
   次被调用时创建一个选择对话框部件。 此后对 "tix_filedialog()" 的所有
   调用都将返回该对话框。 可以传入一个字符串形式的可选形参 dlgclass 来
   指明所需的选择对话框类型。 可用的选项有 "tix", "FileSelectDialog"
   或 "tixExFileSelectDialog"。

tixCommand.tix_getimage(self, name)

   在某个位图目录（参见上文的 "tix_addbitmapdir()" 方法）中定位名为
   "name.xpm", "name.xbm" 或 "name.ppm" 的图像文件。 如果存在多个同名
   文件（但扩展名不同），则会按照 X 显示的深度选择图像类型：单色显示选
   择 xbm 图像而彩色显示则选择彩色图像。 通过使用 "tix_getimage()"，你
   可以避免在你的应用程序中硬编码图像文件的路径名。 当执行成功时，此方
   法将返回新创建图像的名称，它可被用于配置 Tk 和 Tix 部件的 "image"
   选项。

tixCommand.tix_option_get(name)

   获取由 Tix 方案机制维护的选项。

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

   将 Tix 应用程序的方案与字体集分别重置为 *newScheme* 和 *newFontSet*
   。 这只会影响调用此方法之后创建的部件。 因此，最好是在 Tix 应用程序
   的任何部件被创建之前调用 resetoptions 方法。

   可以给出可选的形参 *newScmPrio* 来重置由 Tix 方案所设置的 Tk 选项的
   优先级。

   由于 Tk 处理 X 选项数据库的特别方式，在 Tix 被导入并初始化之后，将
   无法再使用 "tix_config()" 方法来重置颜色方案和字体集。 而必须要使用
   "tix_resetoptions()" 方法。
