24.3. Tix — Tk 的扩展小部件 — Python 文档
24.3. 提克斯 — Tk 的扩展小部件
Tix(Tk 接口扩展)模块提供了一组额外的丰富的小部件。 尽管标准 Tk 库有许多有用的小部件,但它们还远未完成。 Tix 库提供了标准 Tk 中缺少的大多数常用小部件:HList、ComboBox、Control(又名 SpinBox)和各种可滚动的小部件。 Tix 还包括更多的小部件,它们通常在广泛的应用程序中有用:NoteBook、FileEntry、PanedWindow等; 其中有40多个。
使用所有这些新小部件,您可以将新的交互技术引入应用程序,创建更有用和更直观的用户界面。 您可以通过选择最合适的小部件来设计您的应用程序,以满足您的应用程序和用户的特殊需求。
也可以看看
- 蒂克斯主页
- Tix 的主页。 这包括指向其他文档和下载的链接。
- Tix 手册页
- 联机版本的手册页和参考资料。
- Tix 编程指南
- 程序员参考资料的在线版本。
- Tix 开发应用程序
- 用于开发 Tix 和 Tkinter 程序的 Tix 应用程序。 Tide 应用程序在 Tk 或 Tkinter 下工作,包括 TixInspect,一个用于远程修改和调试 Tix/Tk/Tkinter 应用程序的检查器。
24.3.1. 使用 Tix
- class Tix.Tix(screenName[, baseName[, className]])
Tix 的顶级小部件,主要代表应用程序的主窗口。 它有一个相关的 Tcl 解释器。
Tix 模块中的类是 Tkinter 模块中的类的子类。 前者导入后者,因此要在 Tkinter 中使用 Tix,您只需导入一个模块。 一般来说,你可以只导入 Tix,并将对 Tkinter.Tk 的顶级调用替换为
Tix.Tk
:import Tix from Tkconstants import * root = Tix.Tk()
要使用 Tix,您必须安装 Tix 小部件,通常与 Tk 小部件一起安装。 要测试您的安装,请尝试以下操作:
import Tix
root = Tix.Tk()
root.tk.eval('package require Tix')
如果失败,则您遇到了 Tk 安装问题,必须在继续之前解决该问题。 使用环境变量TIX_LIBRARY
指向安装的Tix库目录,并确保你有动态对象库(tix8183.dll
或libtix8183.so
) 位于包含 Tk 动态对象库(tk8183.dll
或 libtk8183.so
)的同一目录中。 包含动态对象库的目录还应该有一个名为 pkgIndex.tcl
(区分大小写)的文件,其中包含以下行:
package ifneeded Tix 8.1 [list load "[file join $dir tix8183.dll]" Tix]
24.3.2. 小工具
Tix 为 Tkinter 曲目引入了 40 多个小部件类。 在标准发行版的 Demo/tix
目录中有所有 Tix 小部件的演示。
24.3.2.1. 基本小工具
- class Tix.Balloon
- 一个 气球 弹出小部件以提供帮助。 当用户在绑定了 Balloon 小部件的小部件内移动光标时,屏幕上将显示一个带有描述性消息的小弹出窗口。
- class Tix.ButtonBox
- ButtonBox 小部件创建一个按钮框,例如通常用于
Ok Cancel
。
- class Tix.ComboBox
- ComboBox 小部件类似于 MS Windows 中的组合框控件。 用户可以通过在条目子窗口小部件中键入或从列表框子窗口小部件中进行选择来选择一个选项。
- class Tix.Control
- Control 小部件也称为
SpinBox
小部件。 用户可以通过按下两个箭头按钮或直接在条目中输入值来调整值。 将根据用户定义的上限和下限检查新值。
- class Tix.LabelEntry
- LabelEntry 小部件将一个入口小部件和一个标签打包到一个大型小部件中。 它可用于简化“entry-form”类型界面的创建。
- class Tix.LabelFrame
- LabelFrame 小部件将一个框架小部件和一个标签打包到一个大型小部件中。 要在 LabelFrame 小部件内创建小部件,需要创建相对于
frame
子部件的新部件,并在frame
子部件内管理它们。
- class Tix.Meter
- Meter 小部件可用于显示可能需要很长时间执行的后台作业的进度。
- class Tix.OptionMenu
- OptionMenu 创建一个选项菜单按钮。
- class Tix.Select
- Select 小部件是按钮子小部件的容器。 它可用于为用户提供单选框或复选框样式的选择选项。
- class Tix.StdButtonBox
- StdButtonBox 小部件是一组用于类似 Motif 的对话框的标准按钮。
24.3.2.2. 文件选择器
- class Tix.DirList
- DirList 小部件显示目录、其先前目录及其子目录的列表视图。 用户可以选择列表中显示的目录之一或更改为另一个目录。
- class Tix.DirTree
- DirTree 小部件显示目录、其先前目录及其子目录的树视图。 用户可以选择列表中显示的目录之一或更改为另一个目录。
- class Tix.DirSelectDialog
- DirSelectDialog 小部件在对话窗口中显示文件系统中的目录。 用户可以使用此对话窗口浏览文件系统以选择所需的目录。
- class Tix.DirSelectBox
- DirSelectBox 类似于标准的 Motif(TM) 目录选择框。 一般用于用户选择目录。 DirSelectBox 将最近选择的目录存储到 ComboBox 小部件中,以便可以再次快速选择它们。
- class Tix.ExFileSelectBox
- ExFileSelectBox 小部件通常嵌入在 tixExFileSelectDialog 小部件中。 它为用户选择文件提供了一种方便的方法。 ExFileSelectBox 小部件的样式与 MS Windows 3.1 上的标准文件对话框非常相似。
- class Tix.FileSelectBox
- FileSelectBox 类似于标准的 Motif(TM) 文件选择框。 一般用于用户选择文件。 FileSelectBox 将最近选择的文件存储到 ComboBox 小部件中,以便可以再次快速选择它们。
- class Tix.FileEntry
- FileEntry 小部件可用于输入文件名。 用户可以手动输入文件名。 或者,用户可以按下条目旁边的按钮小部件,这将打开一个文件选择对话框。
24.3.2.3. 分层列表框
- class Tix.HList
- HList 小部件可用于显示任何具有层次结构的数据,例如文件系统目录树。 列表条目根据它们在层次结构中的位置通过支线缩进和连接。
- class Tix.CheckList
- CheckList 小部件显示用户要选择的项目列表。 CheckList 的作用类似于 Tk 的 checkbutton 或 radiobutton 小部件,除了它能够处理比 checkbuttons 或 radiobuttons 多得多的项目。
- class Tix.Tree
- Tree 小部件可用于以树形式显示分层数据。 用户可以通过打开或关闭树的部分来调整树的视图。
24.3.2.4. 表格列表框
- class Tix.TList
- TList 小部件可用于以表格格式显示数据。 TList 小部件的列表条目类似于 Tk 列表框小部件中的条目。 主要区别在于 (1) TList 小部件可以以二维格式显示列表条目和 (2) 您可以使用图形图像以及列表条目的多种颜色和字体。
24.3.2.5. 管理器小工具
- class Tix.PanedWindow
- PanedWindow 小部件允许用户以交互方式操作多个窗格的大小。 窗格可以垂直或水平排列。 用户通过拖动两个窗格之间的调整大小手柄来更改窗格的大小。
- class Tix.ListNoteBook
- ListNoteBook 小部件与
TixNoteBook
小部件非常相似:它可以使用笔记本比喻在有限空间内显示多个窗口。 笔记本被分成一堆页面(窗口)。 一次只能显示这些页面之一。 用户可以通过在hlist
子小部件中选择所需页面的名称来浏览这些页面。
- class Tix.NoteBook
- NoteBook 小部件可用于使用笔记本比喻在有限空间内显示多个窗口。 笔记本被分成一堆页面。 一次只能显示这些页面之一。 用户可以通过选择 NoteBook 小部件顶部的可视“选项卡”来浏览这些页面。
24.3.3. Tix 命令
- class Tix.tixCommand
tix 命令 提供对 Tix 内部状态和 Tix 应用程序上下文的杂项元素的访问。 这些方法处理的大部分信息都与整个应用程序、屏幕或显示有关,而不是与特定窗口有关。
查看当前设置,常用的用法是:
import Tix root = Tix.Tk() print root.tix_configure()
- tixCommand.tix_configure(cnf=None ** kw)
- 查询或修改 Tix 应用上下文的配置选项。 如果未指定选项,则返回所有可用选项的字典。 如果选项没有指定值,则该方法返回一个描述该命名选项的列表(如果没有指定选项,该列表将与返回值的相应子列表相同)。 如果指定了一个或多个选项值对,则该方法修改给定选项以具有给定值; 在这种情况下,该方法返回一个空字符串。 Option 可以是任何配置选项。
- tixCommand.tix_cget(option)
- 返回由 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)
- 在位图目录之一中定位名称为
name.xpm
、name.xbm
或name.ppm
的图像文件(参见上面的 tix_addbitmapdir() 方法)。 如果存在多个具有相同名称(但扩展名不同)的文件,则根据 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() 方法。