2019-04-08 23:22:26 +08:00

1 line
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="body" role="main"><div class="section" id="graphical-user-interfaces-with-tk"><h1><span class="yiyi-st" id="yiyi-9">25. </span><span class="yiyi-st" id="yiyi-10">Graphical User Interfaces with Tk</span></h1><p id="index-0"><span class="yiyi-st" id="yiyi-11">Tk/Tcl 一直都是 Python 的一个组成部分。</span><span class="yiyi-st" id="yiyi-12">它提供了一个强大的,与平台无关的窗口工具包,可供 Python 程序员使用<a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal"><span class="pre">tkinter</span></code></a>库及其扩展,<a class="reference internal" href="tkinter.tix.html#module-tkinter.tix" title="tkinter.tix: Tk Extension Widgets for Tkinter"><code class="xref py py-mod docutils literal"><span class="pre">tkinter.tix</span></code></a><a class="reference internal" href="tkinter.ttk.html#module-tkinter.ttk" title="tkinter.ttk: Tk themed widget set"><code class="xref py py-mod docutils literal"><span class="pre">tkinter.ttk</span></code></a> 模块。</span></p><p><span class="yiyi-st" id="yiyi-13"><a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal"><span class="pre">tkinter</span></code></a> 库是基于 Tcl / Tk 的一个轻量的面向对象层。</span><span class="yiyi-st" id="yiyi-14">使用 <a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal"><span class="pre">tkinter</span></code></a>,不需要编写 Tcl 代码,但是需要参阅 Tk 文档,有时也需要参阅 Tcl 文档。</span><span class="yiyi-st" id="yiyi-15"><a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal"><span class="pre">tkinter</span></code></a> 是将 Tk 控件实现为 Python 类的一系列封装。</span><span class="yiyi-st" id="yiyi-16">此外,内部模块 <code class="xref py py-mod docutils literal"><span class="pre">_tkinter</span></code> 提供了允许 Python 和 Tcl 进行交互的线程安全机制。</span></p><p><span class="yiyi-st" id="yiyi-17"><a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal"><span class="pre">tkinter</span></code></a> 的主要优点是它的速度很快,而且通常 Python 都有捆绑自带。</span><span class="yiyi-st" id="yiyi-18">虽然它的标准帮助文档薄弱,但是有优质的资料可供阅读,包括:参考、教程、一本书和其他。</span><span class="yiyi-st" id="yiyi-19"><a class="reference internal" href="tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal"><span class="pre">tkinter</span></code></a> 界面让人觉得过时,在 Tk 8.5 中得到了极大的改进。</span><span class="yiyi-st" id="yiyi-20">不过GUI 库还有更多其他的选择,你可能会对这些感兴趣。</span><span class="yiyi-st" id="yiyi-21">有关可选库的详细信息,请参阅<a class="reference internal" href="othergui.html#other-gui-packages"><span>其它图形用户界面库</span></a>章节。</span></p><div class="toctree-wrapper compound"><ul><li class="toctree-l1"><span class="yiyi-st" id="yiyi-40"><a class="reference internal" href="tkinter.html">25.1. <code class="docutils literal"><span class="pre">tkinter</span></code> - Tcl / Tk的Python接口</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-22"><a class="reference internal" href="tkinter.html#tkinter-modules">25.1.1. Tkinter模块</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-25"><a class="reference internal" href="tkinter.html#tkinter-life-preserver">25.1.2. Tkinter Life Preserver</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-23"><a class="reference internal" href="tkinter.html#how-to-use-this-section">25.1.2.1.如何使用本节</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-24"><a class="reference internal" href="tkinter.html#a-simple-hello-world-program">25.1.2.2.一个简单的Hello World程序</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-26"><a class="reference internal" href="tkinter.html#a-very-quick-look-at-tcl-tk">25.1.3. A非常快速查看Tcl / Tk</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-27"><a class="reference internal" href="tkinter.html#mapping-basic-tk-into-tkinter">25.1.4.将Tkinter映射到Tkinter</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-28"><a class="reference internal" href="tkinter.html#how-tk-and-tkinter-are-related">25.1.5. Tk和Tkinter如何相关</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-38"><a class="reference internal" href="tkinter.html#handy-reference">25.1.6.方便参考</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-29"><a class="reference internal" href="tkinter.html#setting-options">25.1.6.1.设置选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-30"><a class="reference internal" href="tkinter.html#the-packer">25.1.6.2.封隔器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-31"><a class="reference internal" href="tkinter.html#packer-options">25.1.6.3.封隔器选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-32"><a class="reference internal" href="tkinter.html#coupling-widget-variables">25.1.6.4.耦合小部件变量</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-33"><a class="reference internal" href="tkinter.html#the-window-manager">25.1.6.5.窗口管理器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-34"><a class="reference internal" href="tkinter.html#tk-option-data-types">25.1.6.6. Tk选项数据类型</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-35"><a class="reference internal" href="tkinter.html#bindings-and-events">25.1.6.7.绑定和事件</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-36"><a class="reference internal" href="tkinter.html#the-index-parameter">25.1.6.8.索引参数</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-37"><a class="reference internal" href="tkinter.html#images">25.1.6.9.图片</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-39"><a class="reference internal" href="tkinter.html#file-handlers">25.1.7.文件处理程序</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-77"><a class="reference internal" href="tkinter.ttk.html">25.2. <code class="docutils literal"><span class="pre">tkinter.ttk</span></code> - Tk主题窗口小部件</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-41"><a class="reference internal" href="tkinter.ttk.html#using-ttk">25.2.1.使用Ttk</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-42"><a class="reference internal" href="tkinter.ttk.html#ttk-widgets">25.2.2. Ttk小部件</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-49"><a class="reference internal" href="tkinter.ttk.html#widget">25.2.3.小部件</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-43"><a class="reference internal" href="tkinter.ttk.html#standard-options">25.2.3.1.标准选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-44"><a class="reference internal" href="tkinter.ttk.html#scrollable-widget-options">25.2.3.2.可滚动小部件选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-45"><a class="reference internal" href="tkinter.ttk.html#label-options">25.2.3.3.标签选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-46"><a class="reference internal" href="tkinter.ttk.html#compatibility-options">25.2.3.4.兼容性选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-47"><a class="reference internal" href="tkinter.ttk.html#widget-states">25.2.3.5.小部件状态</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-48"><a class="reference internal" href="tkinter.ttk.html#ttk-widget">25.2.3.6. ttk.Widget</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-53"><a class="reference internal" href="tkinter.ttk.html#combobox">25.2.4. Combobox</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-50"><a class="reference internal" href="tkinter.ttk.html#options">25.2.4.1.选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-51"><a class="reference internal" href="tkinter.ttk.html#virtual-events">25.2.4.2.虚拟事件</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-52"><a class="reference internal" href="tkinter.ttk.html#ttk-combobox">25.2.4.3. ttk.Combobox</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-59"><a class="reference internal" href="tkinter.ttk.html#notebook">25.2.5.笔记本</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-54"><a class="reference internal" href="tkinter.ttk.html#id1">25.2.5.1.选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-55"><a class="reference internal" href="tkinter.ttk.html#tab-options">25.2.5.2.标签选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-56"><a class="reference internal" href="tkinter.ttk.html#tab-identifiers">25.2.5.3.标签标识符</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-57"><a class="reference internal" href="tkinter.ttk.html#id2">25.2.5.4.虚拟事件</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-58"><a class="reference internal" href="tkinter.ttk.html#ttk-notebook">25.2.5.5. ttk.Notebook</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-62"><a class="reference internal" href="tkinter.ttk.html#progressbar">25.2.6.进度栏</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-60"><a class="reference internal" href="tkinter.ttk.html#id3">25.2.6.1.选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-61"><a class="reference internal" href="tkinter.ttk.html#ttk-progressbar">25.2.6.2. ttk.Progressbar</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-64"><a class="reference internal" href="tkinter.ttk.html#separator">25.2.7.分隔符</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-63"><a class="reference internal" href="tkinter.ttk.html#id4">25.2.7.1.选项</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-67"><a class="reference internal" href="tkinter.ttk.html#sizegrip">25.2.8. Sizegrip</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-65"><a class="reference internal" href="tkinter.ttk.html#platform-specific-notes">25.2.8.1.平台特定的笔记</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-66"><a class="reference internal" href="tkinter.ttk.html#bugs">25.2.8.2.错误</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-74"><a class="reference internal" href="tkinter.ttk.html#treeview">25.2.9. Treeview</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-68"><a class="reference internal" href="tkinter.ttk.html#id5">25.2.9.1.选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-69"><a class="reference internal" href="tkinter.ttk.html#item-options">25.2.9.2.项目选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-70"><a class="reference internal" href="tkinter.ttk.html#tag-options">25.2.9.3.标签选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-71"><a class="reference internal" href="tkinter.ttk.html#column-identifiers">25.2.9.4.列标识符</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-72"><a class="reference internal" href="tkinter.ttk.html#id6">25.2.9.5.虚拟事件</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-73"><a class="reference internal" href="tkinter.ttk.html#ttk-treeview">25.2.9.6. ttk.Treeview</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-76"><a class="reference internal" href="tkinter.ttk.html#ttk-styling">25.2.10. Ttk样式</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-75"><a class="reference internal" href="tkinter.ttk.html#layouts">25.2.10.1.布局</a></span></li></ul></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-89"><a class="reference internal" href="tkinter.tix.html">25.3. <code class="docutils literal"><span class="pre">tkinter.tix</span></code> - Tk</a>的扩展小部件</span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-78"><a class="reference internal" href="tkinter.tix.html#using-tix">25.3.1.使用Tix</a></span></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-87"><a class="reference internal" href="tkinter.tix.html#tix-widgets">25.3.2. Tix Widgets</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-79"><a class="reference internal" href="tkinter.tix.html#basic-widgets">25.3.2.1.基本小部件</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-80"><a class="reference internal" href="tkinter.tix.html#file-selectors">25.3.2.2.文件选择器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-81"><a class="reference internal" href="tkinter.tix.html#hierarchical-listbox">25.3.2.3. Hierarchical ListBox</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-82"><a class="reference internal" href="tkinter.tix.html#tabular-listbox">25.3.2.4.表格列表框</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-83"><a class="reference internal" href="tkinter.tix.html#manager-widgets">25.3.2.5.经理小部件</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-84"><a class="reference internal" href="tkinter.tix.html#image-types">25.3.2.6.图像类型</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-85"><a class="reference internal" href="tkinter.tix.html#miscellaneous-widgets">25.3.2.7.杂项小部件</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-86"><a class="reference internal" href="tkinter.tix.html#form-geometry-manager">25.3.2.8.表单几何管理器</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-88"><a class="reference internal" href="tkinter.tix.html#tix-commands">25.3.3. Tix命令</a></span></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-90"><a class="reference internal" href="tkinter.scrolledtext.html">25.4. <code class="docutils literal"><span class="pre">tkinter.scrolledtext</span></code> - 滚动文字小部件</a></span></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-116"><a class="reference internal" href="idle.html">25.5. IDLE</a></span><ul><li class="toctree-l2"><span class="yiyi-st" id="yiyi-101"><a class="reference internal" href="idle.html#menus">25.5.1.菜单</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-91"><a class="reference internal" href="idle.html#file-menu-shell-and-editor">25.5.1.1.文件菜单Shell和编辑器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-92"><a class="reference internal" href="idle.html#edit-menu-shell-and-editor">25.5.1.2编辑菜单Shell和编辑器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-93"><a class="reference internal" href="idle.html#format-menu-editor-window-only">25.5.1.3.格式菜单(仅限编辑器窗口)</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-94"><a class="reference internal" href="idle.html#run-menu-editor-window-only">25.5.1.4.运行菜单(仅限编辑器窗口)</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-95"><a class="reference internal" href="idle.html#shell-menu-shell-window-only">25.5.1.5. Shell菜单仅限Shell窗口</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-96"><a class="reference internal" href="idle.html#debug-menu-shell-window-only">25.5.1.6.调试菜单仅限Shell窗口</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-97"><a class="reference internal" href="idle.html#options-menu-shell-and-editor">25.5.1.7.选项菜单Shell和编辑器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-98"><a class="reference internal" href="idle.html#window-menu-shell-and-editor">25.5.1.8.窗口菜单Shell和编辑器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-99"><a class="reference internal" href="idle.html#help-menu-shell-and-editor">25.5.1.9.帮助菜单Shell和编辑器</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-100"><a class="reference internal" href="idle.html#context-menus">25.5.1.10.上下文菜单</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-107"><a class="reference internal" href="idle.html#editing-and-navigation">25.5.2.编辑和导航</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-102"><a class="reference internal" href="idle.html#automatic-indentation">25.5.2.1.自动缩进</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-103"><a class="reference internal" href="idle.html#completions">25.5.2.2.完成</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-104"><a class="reference internal" href="idle.html#calltips">25.5.2.3. Calltips</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-105"><a class="reference internal" href="idle.html#python-shell-window">25.5.2.4. Python Shell窗口</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-106"><a class="reference internal" href="idle.html#text-colors">25.5.2.5.文字颜色</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-111"><a class="reference internal" href="idle.html#startup-and-code-execution">25.5.3.启动和代码执行</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-108"><a class="reference internal" href="idle.html#command-line-usage">25.5.3.1.命令行用法</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-109"><a class="reference internal" href="idle.html#idle-console-differences">25.5.3.2. IDLE控制台差异</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-110"><a class="reference internal" href="idle.html#running-without-a-subprocess">25.5.3.3.没有子过程的运行</a></span></li></ul></li><li class="toctree-l2"><span class="yiyi-st" id="yiyi-115"><a class="reference internal" href="idle.html#help-and-preferences">25.5.4.帮助和偏好</a></span><ul><li class="toctree-l3"><span class="yiyi-st" id="yiyi-112"><a class="reference internal" href="idle.html#additional-help-sources">25.5.4.1.其他帮助来源</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-113"><a class="reference internal" href="idle.html#setting-preferences">25.5.4.2.设置首选项</a></span></li><li class="toctree-l3"><span class="yiyi-st" id="yiyi-114"><a class="reference internal" href="idle.html#extensions">25.5.4.3.扩展</a></span></li></ul></li></ul></li><li class="toctree-l1"><span class="yiyi-st" id="yiyi-117"><a class="reference internal" href="othergui.html">25.6.其他图形用户界面包</a></span></li></ul></div></div></div>