annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/idlelib/help.html @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1
jpayne@68 2 <!DOCTYPE html>
jpayne@68 3
jpayne@68 4 <html xmlns="http://www.w3.org/1999/xhtml">
jpayne@68 5 <head>
jpayne@68 6 <meta charset="utf-8" />
jpayne@68 7 <title>IDLE &#8212; Python 3.9.0a1 documentation</title>
jpayne@68 8 <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
jpayne@68 9 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
jpayne@68 10
jpayne@68 11 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
jpayne@68 12 <script type="text/javascript" src="../_static/jquery.js"></script>
jpayne@68 13 <script type="text/javascript" src="../_static/underscore.js"></script>
jpayne@68 14 <script type="text/javascript" src="../_static/doctools.js"></script>
jpayne@68 15 <script type="text/javascript" src="../_static/language_data.js"></script>
jpayne@68 16
jpayne@68 17 <script type="text/javascript" src="../_static/sidebar.js"></script>
jpayne@68 18
jpayne@68 19 <link rel="search" type="application/opensearchdescription+xml"
jpayne@68 20 title="Search within Python 3.9.0a1 documentation"
jpayne@68 21 href="../_static/opensearch.xml"/>
jpayne@68 22 <link rel="author" title="About these documents" href="../about.html" />
jpayne@68 23 <link rel="index" title="Index" href="../genindex.html" />
jpayne@68 24 <link rel="search" title="Search" href="../search.html" />
jpayne@68 25 <link rel="copyright" title="Copyright" href="../copyright.html" />
jpayne@68 26 <link rel="next" title="Other Graphical User Interface Packages" href="othergui.html" />
jpayne@68 27 <link rel="prev" title="tkinter.tix — Extension widgets for Tk" href="tkinter.tix.html" />
jpayne@68 28 <link rel="canonical" href="https://docs.python.org/3/library/idle.html" />
jpayne@68 29
jpayne@68 30
jpayne@68 31
jpayne@68 32
jpayne@68 33
jpayne@68 34
jpayne@68 35 <style>
jpayne@68 36 @media only screen {
jpayne@68 37 table.full-width-table {
jpayne@68 38 width: 100%;
jpayne@68 39 }
jpayne@68 40 }
jpayne@68 41 </style>
jpayne@68 42
jpayne@68 43 <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
jpayne@68 44
jpayne@68 45 <script type="text/javascript" src="../_static/copybutton.js"></script>
jpayne@68 46
jpayne@68 47
jpayne@68 48
jpayne@68 49
jpayne@68 50 </head><body>
jpayne@68 51
jpayne@68 52 <div class="related" role="navigation" aria-label="related navigation">
jpayne@68 53 <h3>Navigation</h3>
jpayne@68 54 <ul>
jpayne@68 55 <li class="right" style="margin-right: 10px">
jpayne@68 56 <a href="../genindex.html" title="General Index"
jpayne@68 57 accesskey="I">index</a></li>
jpayne@68 58 <li class="right" >
jpayne@68 59 <a href="../py-modindex.html" title="Python Module Index"
jpayne@68 60 >modules</a> |</li>
jpayne@68 61 <li class="right" >
jpayne@68 62 <a href="othergui.html" title="Other Graphical User Interface Packages"
jpayne@68 63 accesskey="N">next</a> |</li>
jpayne@68 64 <li class="right" >
jpayne@68 65 <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk"
jpayne@68 66 accesskey="P">previous</a> |</li>
jpayne@68 67
jpayne@68 68 <li><img src="../_static/py.png" alt=""
jpayne@68 69 style="vertical-align: middle; margin-top: -1px"/></li>
jpayne@68 70 <li><a href="https://www.python.org/">Python</a> &#187;</li>
jpayne@68 71
jpayne@68 72
jpayne@68 73 <li>
jpayne@68 74 <a href="../index.html">3.9.0a1 Documentation</a> &#187;
jpayne@68 75 </li>
jpayne@68 76
jpayne@68 77 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
jpayne@68 78 <li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">Graphical User Interfaces with Tk</a> &#187;</li>
jpayne@68 79 <li class="right">
jpayne@68 80
jpayne@68 81
jpayne@68 82 <div class="inline-search" style="display: none" role="search">
jpayne@68 83 <form class="inline-search" action="../search.html" method="get">
jpayne@68 84 <input placeholder="Quick search" type="text" name="q" />
jpayne@68 85 <input type="submit" value="Go" />
jpayne@68 86 <input type="hidden" name="check_keywords" value="yes" />
jpayne@68 87 <input type="hidden" name="area" value="default" />
jpayne@68 88 </form>
jpayne@68 89 </div>
jpayne@68 90 <script type="text/javascript">$('.inline-search').show(0);</script>
jpayne@68 91 |
jpayne@68 92 </li>
jpayne@68 93
jpayne@68 94 </ul>
jpayne@68 95 </div>
jpayne@68 96
jpayne@68 97 <div class="document">
jpayne@68 98 <div class="documentwrapper">
jpayne@68 99 <div class="bodywrapper">
jpayne@68 100 <div class="body" role="main">
jpayne@68 101
jpayne@68 102 <div class="section" id="idle">
jpayne@68 103 <span id="id1"></span><h1>IDLE<a class="headerlink" href="#idle" title="Permalink to this headline">¶</a></h1>
jpayne@68 104 <p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/master/Lib/idlelib/">Lib/idlelib/</a></p>
jpayne@68 105 <hr class="docutils" id="index-0" />
jpayne@68 106 <p>IDLE is Python’s Integrated Development and Learning Environment.</p>
jpayne@68 107 <p>IDLE has the following features:</p>
jpayne@68 108 <ul class="simple">
jpayne@68 109 <li><p>coded in 100% pure Python, using the <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 notranslate"><span class="pre">tkinter</span></code></a> GUI toolkit</p></li>
jpayne@68 110 <li><p>cross-platform: works mostly the same on Windows, Unix, and macOS</p></li>
jpayne@68 111 <li><p>Python shell window (interactive interpreter) with colorizing
jpayne@68 112 of code input, output, and error messages</p></li>
jpayne@68 113 <li><p>multi-window text editor with multiple undo, Python colorizing,
jpayne@68 114 smart indent, call tips, auto completion, and other features</p></li>
jpayne@68 115 <li><p>search within any window, replace within editor windows, and search
jpayne@68 116 through multiple files (grep)</p></li>
jpayne@68 117 <li><p>debugger with persistent breakpoints, stepping, and viewing
jpayne@68 118 of global and local namespaces</p></li>
jpayne@68 119 <li><p>configuration, browsers, and other dialogs</p></li>
jpayne@68 120 </ul>
jpayne@68 121 <div class="section" id="menus">
jpayne@68 122 <h2>Menus<a class="headerlink" href="#menus" title="Permalink to this headline">¶</a></h2>
jpayne@68 123 <p>IDLE has two main window types, the Shell window and the Editor window. It is
jpayne@68 124 possible to have multiple editor windows simultaneously. On Windows and
jpayne@68 125 Linux, each has its own top menu. Each menu documented below indicates
jpayne@68 126 which window type it is associated with.</p>
jpayne@68 127 <p>Output windows, such as used for Edit =&gt; Find in Files, are a subtype of editor
jpayne@68 128 window. They currently have the same top menu but a different
jpayne@68 129 default title and context menu.</p>
jpayne@68 130 <p>On macOS, there is one application menu. It dynamically changes according
jpayne@68 131 to the window currently selected. It has an IDLE menu, and some entries
jpayne@68 132 described below are moved around to conform to Apple guidelines.</p>
jpayne@68 133 <div class="section" id="file-menu-shell-and-editor">
jpayne@68 134 <h3>File menu (Shell and Editor)<a class="headerlink" href="#file-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
jpayne@68 135 <dl class="simple">
jpayne@68 136 <dt>New File</dt><dd><p>Create a new file editing window.</p>
jpayne@68 137 </dd>
jpayne@68 138 <dt>Open…</dt><dd><p>Open an existing file with an Open dialog.</p>
jpayne@68 139 </dd>
jpayne@68 140 <dt>Recent Files</dt><dd><p>Open a list of recent files. Click one to open it.</p>
jpayne@68 141 </dd>
jpayne@68 142 <dt>Open Module…</dt><dd><p>Open an existing module (searches sys.path).</p>
jpayne@68 143 </dd>
jpayne@68 144 </dl>
jpayne@68 145 <dl class="simple" id="index-1">
jpayne@68 146 <dt>Class Browser</dt><dd><p>Show functions, classes, and methods in the current Editor file in a
jpayne@68 147 tree structure. In the shell, open a module first.</p>
jpayne@68 148 </dd>
jpayne@68 149 <dt>Path Browser</dt><dd><p>Show sys.path directories, modules, functions, classes and methods in a
jpayne@68 150 tree structure.</p>
jpayne@68 151 </dd>
jpayne@68 152 <dt>Save</dt><dd><p>Save the current window to the associated file, if there is one. Windows
jpayne@68 153 that have been changed since being opened or last saved have a * before
jpayne@68 154 and after the window title. If there is no associated file,
jpayne@68 155 do Save As instead.</p>
jpayne@68 156 </dd>
jpayne@68 157 <dt>Save As…</dt><dd><p>Save the current window with a Save As dialog. The file saved becomes the
jpayne@68 158 new associated file for the window.</p>
jpayne@68 159 </dd>
jpayne@68 160 <dt>Save Copy As…</dt><dd><p>Save the current window to different file without changing the associated
jpayne@68 161 file.</p>
jpayne@68 162 </dd>
jpayne@68 163 <dt>Print Window</dt><dd><p>Print the current window to the default printer.</p>
jpayne@68 164 </dd>
jpayne@68 165 <dt>Close</dt><dd><p>Close the current window (ask to save if unsaved).</p>
jpayne@68 166 </dd>
jpayne@68 167 <dt>Exit</dt><dd><p>Close all windows and quit IDLE (ask to save unsaved windows).</p>
jpayne@68 168 </dd>
jpayne@68 169 </dl>
jpayne@68 170 </div>
jpayne@68 171 <div class="section" id="edit-menu-shell-and-editor">
jpayne@68 172 <h3>Edit menu (Shell and Editor)<a class="headerlink" href="#edit-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
jpayne@68 173 <dl class="simple">
jpayne@68 174 <dt>Undo</dt><dd><p>Undo the last change to the current window. A maximum of 1000 changes may
jpayne@68 175 be undone.</p>
jpayne@68 176 </dd>
jpayne@68 177 <dt>Redo</dt><dd><p>Redo the last undone change to the current window.</p>
jpayne@68 178 </dd>
jpayne@68 179 <dt>Cut</dt><dd><p>Copy selection into the system-wide clipboard; then delete the selection.</p>
jpayne@68 180 </dd>
jpayne@68 181 <dt>Copy</dt><dd><p>Copy selection into the system-wide clipboard.</p>
jpayne@68 182 </dd>
jpayne@68 183 <dt>Paste</dt><dd><p>Insert contents of the system-wide clipboard into the current window.</p>
jpayne@68 184 </dd>
jpayne@68 185 </dl>
jpayne@68 186 <p>The clipboard functions are also available in context menus.</p>
jpayne@68 187 <dl class="simple">
jpayne@68 188 <dt>Select All</dt><dd><p>Select the entire contents of the current window.</p>
jpayne@68 189 </dd>
jpayne@68 190 <dt>Find…</dt><dd><p>Open a search dialog with many options</p>
jpayne@68 191 </dd>
jpayne@68 192 <dt>Find Again</dt><dd><p>Repeat the last search, if there is one.</p>
jpayne@68 193 </dd>
jpayne@68 194 <dt>Find Selection</dt><dd><p>Search for the currently selected string, if there is one.</p>
jpayne@68 195 </dd>
jpayne@68 196 <dt>Find in Files…</dt><dd><p>Open a file search dialog. Put results in a new output window.</p>
jpayne@68 197 </dd>
jpayne@68 198 <dt>Replace…</dt><dd><p>Open a search-and-replace dialog.</p>
jpayne@68 199 </dd>
jpayne@68 200 <dt>Go to Line</dt><dd><p>Move cursor to the line number requested and make that line visible.</p>
jpayne@68 201 </dd>
jpayne@68 202 <dt>Show Completions</dt><dd><p>Open a scrollable list allowing selection of keywords and attributes. See
jpayne@68 203 <a class="reference internal" href="#completions"><span class="std std-ref">Completions</span></a> in the Editing and navigation section below.</p>
jpayne@68 204 </dd>
jpayne@68 205 <dt>Expand Word</dt><dd><p>Expand a prefix you have typed to match a full word in the same window;
jpayne@68 206 repeat to get a different expansion.</p>
jpayne@68 207 </dd>
jpayne@68 208 <dt>Show call tip</dt><dd><p>After an unclosed parenthesis for a function, open a small window with
jpayne@68 209 function parameter hints. See <a class="reference internal" href="#calltips"><span class="std std-ref">Calltips</span></a> in the
jpayne@68 210 Editing and navigation section below.</p>
jpayne@68 211 </dd>
jpayne@68 212 <dt>Show surrounding parens</dt><dd><p>Highlight the surrounding parenthesis.</p>
jpayne@68 213 </dd>
jpayne@68 214 </dl>
jpayne@68 215 </div>
jpayne@68 216 <div class="section" id="format-menu-editor-window-only">
jpayne@68 217 <span id="format-menu"></span><h3>Format menu (Editor window only)<a class="headerlink" href="#format-menu-editor-window-only" title="Permalink to this headline">¶</a></h3>
jpayne@68 218 <dl class="simple">
jpayne@68 219 <dt>Indent Region</dt><dd><p>Shift selected lines right by the indent width (default 4 spaces).</p>
jpayne@68 220 </dd>
jpayne@68 221 <dt>Dedent Region</dt><dd><p>Shift selected lines left by the indent width (default 4 spaces).</p>
jpayne@68 222 </dd>
jpayne@68 223 <dt>Comment Out Region</dt><dd><p>Insert ## in front of selected lines.</p>
jpayne@68 224 </dd>
jpayne@68 225 <dt>Uncomment Region</dt><dd><p>Remove leading # or ## from selected lines.</p>
jpayne@68 226 </dd>
jpayne@68 227 <dt>Tabify Region</dt><dd><p>Turn <em>leading</em> stretches of spaces into tabs. (Note: We recommend using
jpayne@68 228 4 space blocks to indent Python code.)</p>
jpayne@68 229 </dd>
jpayne@68 230 <dt>Untabify Region</dt><dd><p>Turn <em>all</em> tabs into the correct number of spaces.</p>
jpayne@68 231 </dd>
jpayne@68 232 <dt>Toggle Tabs</dt><dd><p>Open a dialog to switch between indenting with spaces and tabs.</p>
jpayne@68 233 </dd>
jpayne@68 234 <dt>New Indent Width</dt><dd><p>Open a dialog to change indent width. The accepted default by the Python
jpayne@68 235 community is 4 spaces.</p>
jpayne@68 236 </dd>
jpayne@68 237 <dt>Format Paragraph</dt><dd><p>Reformat the current blank-line-delimited paragraph in comment block or
jpayne@68 238 multiline string or selected line in a string. All lines in the
jpayne@68 239 paragraph will be formatted to less than N columns, where N defaults to 72.</p>
jpayne@68 240 </dd>
jpayne@68 241 <dt>Strip trailing whitespace</dt><dd><p>Remove trailing space and other whitespace characters after the last
jpayne@68 242 non-whitespace character of a line by applying str.rstrip to each line,
jpayne@68 243 including lines within multiline strings. Except for Shell windows,
jpayne@68 244 remove extra newlines at the end of the file.</p>
jpayne@68 245 </dd>
jpayne@68 246 </dl>
jpayne@68 247 </div>
jpayne@68 248 <div class="section" id="run-menu-editor-window-only">
jpayne@68 249 <span id="index-2"></span><h3>Run menu (Editor window only)<a class="headerlink" href="#run-menu-editor-window-only" title="Permalink to this headline">¶</a></h3>
jpayne@68 250 <dl class="simple" id="run-module">
jpayne@68 251 <dt>Run Module</dt><dd><p>Do <a class="reference internal" href="#check-module"><span class="std std-ref">Check Module</span></a>. If no error, restart the shell to clean the
jpayne@68 252 environment, then execute the module. Output is displayed in the Shell
jpayne@68 253 window. Note that output requires use of <code class="docutils literal notranslate"><span class="pre">print</span></code> or <code class="docutils literal notranslate"><span class="pre">write</span></code>.
jpayne@68 254 When execution is complete, the Shell retains focus and displays a prompt.
jpayne@68 255 At this point, one may interactively explore the result of execution.
jpayne@68 256 This is similar to executing a file with <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span> <span class="pre">file</span></code> at a command
jpayne@68 257 line.</p>
jpayne@68 258 </dd>
jpayne@68 259 </dl>
jpayne@68 260 <dl class="simple" id="run-custom">
jpayne@68 261 <dt>Run… Customized</dt><dd><p>Same as <a class="reference internal" href="#run-module"><span class="std std-ref">Run Module</span></a>, but run the module with customized
jpayne@68 262 settings. <em>Command Line Arguments</em> extend <a class="reference internal" href="sys.html#sys.argv" title="sys.argv"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.argv</span></code></a> as if passed
jpayne@68 263 on a command line. The module can be run in the Shell without restarting.</p>
jpayne@68 264 </dd>
jpayne@68 265 </dl>
jpayne@68 266 <dl class="simple" id="check-module">
jpayne@68 267 <dt>Check Module</dt><dd><p>Check the syntax of the module currently open in the Editor window. If the
jpayne@68 268 module has not been saved IDLE will either prompt the user to save or
jpayne@68 269 autosave, as selected in the General tab of the Idle Settings dialog. If
jpayne@68 270 there is a syntax error, the approximate location is indicated in the
jpayne@68 271 Editor window.</p>
jpayne@68 272 </dd>
jpayne@68 273 </dl>
jpayne@68 274 <dl class="simple" id="python-shell">
jpayne@68 275 <dt>Python Shell</dt><dd><p>Open or wake up the Python Shell window.</p>
jpayne@68 276 </dd>
jpayne@68 277 </dl>
jpayne@68 278 </div>
jpayne@68 279 <div class="section" id="shell-menu-shell-window-only">
jpayne@68 280 <h3>Shell menu (Shell window only)<a class="headerlink" href="#shell-menu-shell-window-only" title="Permalink to this headline">¶</a></h3>
jpayne@68 281 <dl class="simple">
jpayne@68 282 <dt>View Last Restart</dt><dd><p>Scroll the shell window to the last Shell restart.</p>
jpayne@68 283 </dd>
jpayne@68 284 <dt>Restart Shell</dt><dd><p>Restart the shell to clean the environment.</p>
jpayne@68 285 </dd>
jpayne@68 286 <dt>Previous History</dt><dd><p>Cycle through earlier commands in history which match the current entry.</p>
jpayne@68 287 </dd>
jpayne@68 288 <dt>Next History</dt><dd><p>Cycle through later commands in history which match the current entry.</p>
jpayne@68 289 </dd>
jpayne@68 290 <dt>Interrupt Execution</dt><dd><p>Stop a running program.</p>
jpayne@68 291 </dd>
jpayne@68 292 </dl>
jpayne@68 293 </div>
jpayne@68 294 <div class="section" id="debug-menu-shell-window-only">
jpayne@68 295 <h3>Debug menu (Shell window only)<a class="headerlink" href="#debug-menu-shell-window-only" title="Permalink to this headline">¶</a></h3>
jpayne@68 296 <dl class="simple">
jpayne@68 297 <dt>Go to File/Line</dt><dd><p>Look on the current line. with the cursor, and the line above for a filename
jpayne@68 298 and line number. If found, open the file if not already open, and show the
jpayne@68 299 line. Use this to view source lines referenced in an exception traceback
jpayne@68 300 and lines found by Find in Files. Also available in the context menu of
jpayne@68 301 the Shell window and Output windows.</p>
jpayne@68 302 </dd>
jpayne@68 303 </dl>
jpayne@68 304 <dl class="simple" id="index-3">
jpayne@68 305 <dt>Debugger (toggle)</dt><dd><p>When activated, code entered in the Shell or run from an Editor will run
jpayne@68 306 under the debugger. In the Editor, breakpoints can be set with the context
jpayne@68 307 menu. This feature is still incomplete and somewhat experimental.</p>
jpayne@68 308 </dd>
jpayne@68 309 <dt>Stack Viewer</dt><dd><p>Show the stack traceback of the last exception in a tree widget, with
jpayne@68 310 access to locals and globals.</p>
jpayne@68 311 </dd>
jpayne@68 312 <dt>Auto-open Stack Viewer</dt><dd><p>Toggle automatically opening the stack viewer on an unhandled exception.</p>
jpayne@68 313 </dd>
jpayne@68 314 </dl>
jpayne@68 315 </div>
jpayne@68 316 <div class="section" id="options-menu-shell-and-editor">
jpayne@68 317 <h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
jpayne@68 318 <dl class="simple">
jpayne@68 319 <dt>Configure IDLE</dt><dd><p>Open a configuration dialog and change preferences for the following:
jpayne@68 320 fonts, indentation, keybindings, text color themes, startup windows and
jpayne@68 321 size, additional help sources, and extensions. On macOS, open the
jpayne@68 322 configuration dialog by selecting Preferences in the application
jpayne@68 323 menu. For more details, see
jpayne@68 324 <a class="reference internal" href="#preferences"><span class="std std-ref">Setting preferences</span></a> under Help and preferences.</p>
jpayne@68 325 </dd>
jpayne@68 326 </dl>
jpayne@68 327 <p>Most configuration options apply to all windows or all future windows.
jpayne@68 328 The option items below only apply to the active window.</p>
jpayne@68 329 <dl class="simple">
jpayne@68 330 <dt>Show/Hide Code Context (Editor Window only)</dt><dd><p>Open a pane at the top of the edit window which shows the block context
jpayne@68 331 of the code which has scrolled above the top of the window. See
jpayne@68 332 <a class="reference internal" href="#code-context"><span class="std std-ref">Code Context</span></a> in the Editing and Navigation section
jpayne@68 333 below.</p>
jpayne@68 334 </dd>
jpayne@68 335 <dt>Show/Hide Line Numbers (Editor Window only)</dt><dd><p>Open a column to the left of the edit window which shows the number
jpayne@68 336 of each line of text. The default is off, which may be changed in the
jpayne@68 337 preferences (see <a class="reference internal" href="#preferences"><span class="std std-ref">Setting preferences</span></a>).</p>
jpayne@68 338 </dd>
jpayne@68 339 <dt>Zoom/Restore Height</dt><dd><p>Toggles the window between normal size and maximum height. The initial size
jpayne@68 340 defaults to 40 lines by 80 chars unless changed on the General tab of the
jpayne@68 341 Configure IDLE dialog. The maximum height for a screen is determined by
jpayne@68 342 momentarily maximizing a window the first time one is zoomed on the screen.
jpayne@68 343 Changing screen settings may invalidate the saved height. This toggle has
jpayne@68 344 no effect when a window is maximized.</p>
jpayne@68 345 </dd>
jpayne@68 346 </dl>
jpayne@68 347 </div>
jpayne@68 348 <div class="section" id="window-menu-shell-and-editor">
jpayne@68 349 <h3>Window menu (Shell and Editor)<a class="headerlink" href="#window-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
jpayne@68 350 <p>Lists the names of all open windows; select one to bring it to the foreground
jpayne@68 351 (deiconifying it if necessary).</p>
jpayne@68 352 </div>
jpayne@68 353 <div class="section" id="help-menu-shell-and-editor">
jpayne@68 354 <h3>Help menu (Shell and Editor)<a class="headerlink" href="#help-menu-shell-and-editor" title="Permalink to this headline">¶</a></h3>
jpayne@68 355 <dl class="simple">
jpayne@68 356 <dt>About IDLE</dt><dd><p>Display version, copyright, license, credits, and more.</p>
jpayne@68 357 </dd>
jpayne@68 358 <dt>IDLE Help</dt><dd><p>Display this IDLE document, detailing the menu options, basic editing and
jpayne@68 359 navigation, and other tips.</p>
jpayne@68 360 </dd>
jpayne@68 361 <dt>Python Docs</dt><dd><p>Access local Python documentation, if installed, or start a web browser
jpayne@68 362 and open docs.python.org showing the latest Python documentation.</p>
jpayne@68 363 </dd>
jpayne@68 364 <dt>Turtle Demo</dt><dd><p>Run the turtledemo module with example Python code and turtle drawings.</p>
jpayne@68 365 </dd>
jpayne@68 366 </dl>
jpayne@68 367 <p>Additional help sources may be added here with the Configure IDLE dialog under
jpayne@68 368 the General tab. See the <a class="reference internal" href="#help-sources"><span class="std std-ref">Help sources</span></a> subsection below
jpayne@68 369 for more on Help menu choices.</p>
jpayne@68 370 </div>
jpayne@68 371 <div class="section" id="context-menus">
jpayne@68 372 <span id="index-4"></span><h3>Context Menus<a class="headerlink" href="#context-menus" title="Permalink to this headline">¶</a></h3>
jpayne@68 373 <p>Open a context menu by right-clicking in a window (Control-click on macOS).
jpayne@68 374 Context menus have the standard clipboard functions also on the Edit menu.</p>
jpayne@68 375 <dl class="simple">
jpayne@68 376 <dt>Cut</dt><dd><p>Copy selection into the system-wide clipboard; then delete the selection.</p>
jpayne@68 377 </dd>
jpayne@68 378 <dt>Copy</dt><dd><p>Copy selection into the system-wide clipboard.</p>
jpayne@68 379 </dd>
jpayne@68 380 <dt>Paste</dt><dd><p>Insert contents of the system-wide clipboard into the current window.</p>
jpayne@68 381 </dd>
jpayne@68 382 </dl>
jpayne@68 383 <p>Editor windows also have breakpoint functions. Lines with a breakpoint set are
jpayne@68 384 specially marked. Breakpoints only have an effect when running under the
jpayne@68 385 debugger. Breakpoints for a file are saved in the user’s .idlerc directory.</p>
jpayne@68 386 <dl class="simple">
jpayne@68 387 <dt>Set Breakpoint</dt><dd><p>Set a breakpoint on the current line.</p>
jpayne@68 388 </dd>
jpayne@68 389 <dt>Clear Breakpoint</dt><dd><p>Clear the breakpoint on that line.</p>
jpayne@68 390 </dd>
jpayne@68 391 </dl>
jpayne@68 392 <p>Shell and Output windows also have the following.</p>
jpayne@68 393 <dl class="simple">
jpayne@68 394 <dt>Go to file/line</dt><dd><p>Same as in Debug menu.</p>
jpayne@68 395 </dd>
jpayne@68 396 </dl>
jpayne@68 397 <p>The Shell window also has an output squeezing facility explained in the <em>Python
jpayne@68 398 Shell window</em> subsection below.</p>
jpayne@68 399 <dl class="simple">
jpayne@68 400 <dt>Squeeze</dt><dd><p>If the cursor is over an output line, squeeze all the output between
jpayne@68 401 the code above and the prompt below down to a ‘Squeezed text’ label.</p>
jpayne@68 402 </dd>
jpayne@68 403 </dl>
jpayne@68 404 </div>
jpayne@68 405 </div>
jpayne@68 406 <div class="section" id="editing-and-navigation">
jpayne@68 407 <span id="id2"></span><h2>Editing and navigation<a class="headerlink" href="#editing-and-navigation" title="Permalink to this headline">¶</a></h2>
jpayne@68 408 <div class="section" id="editor-windows">
jpayne@68 409 <h3>Editor windows<a class="headerlink" href="#editor-windows" title="Permalink to this headline">¶</a></h3>
jpayne@68 410 <p>IDLE may open editor windows when it starts, depending on settings
jpayne@68 411 and how you start IDLE. Thereafter, use the File menu. There can be only
jpayne@68 412 one open editor window for a given file.</p>
jpayne@68 413 <p>The title bar contains the name of the file, the full path, and the version
jpayne@68 414 of Python and IDLE running the window. The status bar contains the line
jpayne@68 415 number (‘Ln’) and column number (‘Col’). Line numbers start with 1;
jpayne@68 416 column numbers with 0.</p>
jpayne@68 417 <p>IDLE assumes that files with a known .py* extension contain Python code
jpayne@68 418 and that other files do not. Run Python code with the Run menu.</p>
jpayne@68 419 </div>
jpayne@68 420 <div class="section" id="key-bindings">
jpayne@68 421 <h3>Key bindings<a class="headerlink" href="#key-bindings" title="Permalink to this headline">¶</a></h3>
jpayne@68 422 <p>In this section, ‘C’ refers to the <kbd class="kbd docutils literal notranslate">Control</kbd> key on Windows and Unix and
jpayne@68 423 the <kbd class="kbd docutils literal notranslate">Command</kbd> key on macOS.</p>
jpayne@68 424 <ul>
jpayne@68 425 <li><p><kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes to the left; <kbd class="kbd docutils literal notranslate">Del</kbd> deletes to the right</p></li>
jpayne@68 426 <li><p><kbd class="kbd docutils literal notranslate">C-Backspace</kbd> delete word left; <kbd class="kbd docutils literal notranslate">C-Del</kbd> delete word to the right</p></li>
jpayne@68 427 <li><p>Arrow keys and <kbd class="kbd docutils literal notranslate">Page Up</kbd>/<kbd class="kbd docutils literal notranslate">Page Down</kbd> to move around</p></li>
jpayne@68 428 <li><p><kbd class="kbd docutils literal notranslate">C-LeftArrow</kbd> and <kbd class="kbd docutils literal notranslate">C-RightArrow</kbd> moves by words</p></li>
jpayne@68 429 <li><p><kbd class="kbd docutils literal notranslate">Home</kbd>/<kbd class="kbd docutils literal notranslate">End</kbd> go to begin/end of line</p></li>
jpayne@68 430 <li><p><kbd class="kbd docutils literal notranslate">C-Home</kbd>/<kbd class="kbd docutils literal notranslate">C-End</kbd> go to begin/end of file</p></li>
jpayne@68 431 <li><p>Some useful Emacs bindings are inherited from Tcl/Tk:</p>
jpayne@68 432 <blockquote>
jpayne@68 433 <div><ul class="simple">
jpayne@68 434 <li><p><kbd class="kbd docutils literal notranslate">C-a</kbd> beginning of line</p></li>
jpayne@68 435 <li><p><kbd class="kbd docutils literal notranslate">C-e</kbd> end of line</p></li>
jpayne@68 436 <li><p><kbd class="kbd docutils literal notranslate">C-k</kbd> kill line (but doesn’t put it in clipboard)</p></li>
jpayne@68 437 <li><p><kbd class="kbd docutils literal notranslate">C-l</kbd> center window around the insertion point</p></li>
jpayne@68 438 <li><p><kbd class="kbd docutils literal notranslate">C-b</kbd> go backward one character without deleting (usually you can
jpayne@68 439 also use the cursor key for this)</p></li>
jpayne@68 440 <li><p><kbd class="kbd docutils literal notranslate">C-f</kbd> go forward one character without deleting (usually you can
jpayne@68 441 also use the cursor key for this)</p></li>
jpayne@68 442 <li><p><kbd class="kbd docutils literal notranslate">C-p</kbd> go up one line (usually you can also use the cursor key for
jpayne@68 443 this)</p></li>
jpayne@68 444 <li><p><kbd class="kbd docutils literal notranslate">C-d</kbd> delete next character</p></li>
jpayne@68 445 </ul>
jpayne@68 446 </div></blockquote>
jpayne@68 447 </li>
jpayne@68 448 </ul>
jpayne@68 449 <p>Standard keybindings (like <kbd class="kbd docutils literal notranslate">C-c</kbd> to copy and <kbd class="kbd docutils literal notranslate">C-v</kbd> to paste)
jpayne@68 450 may work. Keybindings are selected in the Configure IDLE dialog.</p>
jpayne@68 451 </div>
jpayne@68 452 <div class="section" id="automatic-indentation">
jpayne@68 453 <h3>Automatic indentation<a class="headerlink" href="#automatic-indentation" title="Permalink to this headline">¶</a></h3>
jpayne@68 454 <p>After a block-opening statement, the next line is indented by 4 spaces (in the
jpayne@68 455 Python Shell window by one tab). After certain keywords (break, return etc.)
jpayne@68 456 the next line is dedented. In leading indentation, <kbd class="kbd docutils literal notranslate">Backspace</kbd> deletes up
jpayne@68 457 to 4 spaces if they are there. <kbd class="kbd docutils literal notranslate">Tab</kbd> inserts spaces (in the Python
jpayne@68 458 Shell window one tab), number depends on Indent width. Currently, tabs
jpayne@68 459 are restricted to four spaces due to Tcl/Tk limitations.</p>
jpayne@68 460 <p>See also the indent/dedent region commands on the
jpayne@68 461 <a class="reference internal" href="#format-menu"><span class="std std-ref">Format menu</span></a>.</p>
jpayne@68 462 </div>
jpayne@68 463 <div class="section" id="completions">
jpayne@68 464 <span id="id3"></span><h3>Completions<a class="headerlink" href="#completions" title="Permalink to this headline">¶</a></h3>
jpayne@68 465 <p>Completions are supplied for functions, classes, and attributes of classes,
jpayne@68 466 both built-in and user-defined. Completions are also provided for
jpayne@68 467 filenames.</p>
jpayne@68 468 <p>The AutoCompleteWindow (ACW) will open after a predefined delay (default is
jpayne@68 469 two seconds) after a ‘.’ or (in a string) an os.sep is typed. If after one
jpayne@68 470 of those characters (plus zero or more other characters) a tab is typed
jpayne@68 471 the ACW will open immediately if a possible continuation is found.</p>
jpayne@68 472 <p>If there is only one possible completion for the characters entered, a
jpayne@68 473 <kbd class="kbd docutils literal notranslate">Tab</kbd> will supply that completion without opening the ACW.</p>
jpayne@68 474 <p>‘Show Completions’ will force open a completions window, by default the
jpayne@68 475 <kbd class="kbd docutils literal notranslate">C-space</kbd> will open a completions window. In an empty
jpayne@68 476 string, this will contain the files in the current directory. On a
jpayne@68 477 blank line, it will contain the built-in and user-defined functions and
jpayne@68 478 classes in the current namespaces, plus any modules imported. If some
jpayne@68 479 characters have been entered, the ACW will attempt to be more specific.</p>
jpayne@68 480 <p>If a string of characters is typed, the ACW selection will jump to the
jpayne@68 481 entry most closely matching those characters. Entering a <kbd class="kbd docutils literal notranslate">tab</kbd> will
jpayne@68 482 cause the longest non-ambiguous match to be entered in the Editor window or
jpayne@68 483 Shell. Two <kbd class="kbd docutils literal notranslate">tab</kbd> in a row will supply the current ACW selection, as
jpayne@68 484 will return or a double click. Cursor keys, Page Up/Down, mouse selection,
jpayne@68 485 and the scroll wheel all operate on the ACW.</p>
jpayne@68 486 <p>“Hidden” attributes can be accessed by typing the beginning of hidden
jpayne@68 487 name after a ‘.’, e.g. ‘_’. This allows access to modules with
jpayne@68 488 <code class="docutils literal notranslate"><span class="pre">__all__</span></code> set, or to class-private attributes.</p>
jpayne@68 489 <p>Completions and the ‘Expand Word’ facility can save a lot of typing!</p>
jpayne@68 490 <p>Completions are currently limited to those in the namespaces. Names in
jpayne@68 491 an Editor window which are not via <code class="docutils literal notranslate"><span class="pre">__main__</span></code> and <a class="reference internal" href="sys.html#sys.modules" title="sys.modules"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.modules</span></code></a> will
jpayne@68 492 not be found. Run the module once with your imports to correct this situation.
jpayne@68 493 Note that IDLE itself places quite a few modules in sys.modules, so
jpayne@68 494 much can be found by default, e.g. the re module.</p>
jpayne@68 495 <p>If you don’t like the ACW popping up unbidden, simply make the delay
jpayne@68 496 longer or disable the extension.</p>
jpayne@68 497 </div>
jpayne@68 498 <div class="section" id="calltips">
jpayne@68 499 <span id="id4"></span><h3>Calltips<a class="headerlink" href="#calltips" title="Permalink to this headline">¶</a></h3>
jpayne@68 500 <p>A calltip is shown when one types <kbd class="kbd docutils literal notranslate">(</kbd> after the name of an <em>accessible</em>
jpayne@68 501 function. A name expression may include dots and subscripts. A calltip
jpayne@68 502 remains until it is clicked, the cursor is moved out of the argument area,
jpayne@68 503 or <kbd class="kbd docutils literal notranslate">)</kbd> is typed. When the cursor is in the argument part of a definition,
jpayne@68 504 the menu or shortcut display a calltip.</p>
jpayne@68 505 <p>A calltip consists of the function signature and the first line of the
jpayne@68 506 docstring. For builtins without an accessible signature, the calltip
jpayne@68 507 consists of all lines up the fifth line or the first blank line. These
jpayne@68 508 details may change.</p>
jpayne@68 509 <p>The set of <em>accessible</em> functions depends on what modules have been imported
jpayne@68 510 into the user process, including those imported by Idle itself,
jpayne@68 511 and what definitions have been run, all since the last restart.</p>
jpayne@68 512 <p>For example, restart the Shell and enter <code class="docutils literal notranslate"><span class="pre">itertools.count(</span></code>. A calltip
jpayne@68 513 appears because Idle imports itertools into the user process for its own use.
jpayne@68 514 (This could change.) Enter <code class="docutils literal notranslate"><span class="pre">turtle.write(</span></code> and nothing appears. Idle does
jpayne@68 515 not import turtle. The menu or shortcut do nothing either. Enter
jpayne@68 516 <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">turtle</span></code> and then <code class="docutils literal notranslate"><span class="pre">turtle.write(</span></code> will work.</p>
jpayne@68 517 <p>In an editor, import statements have no effect until one runs the file. One
jpayne@68 518 might want to run a file after writing the import statements at the top,
jpayne@68 519 or immediately run an existing file before editing.</p>
jpayne@68 520 </div>
jpayne@68 521 <div class="section" id="code-context">
jpayne@68 522 <span id="id5"></span><h3>Code Context<a class="headerlink" href="#code-context" title="Permalink to this headline">¶</a></h3>
jpayne@68 523 <p>Within an editor window containing Python code, code context can be toggled
jpayne@68 524 in order to show or hide a pane at the top of the window. When shown, this
jpayne@68 525 pane freezes the opening lines for block code, such as those beginning with
jpayne@68 526 <code class="docutils literal notranslate"><span class="pre">class</span></code>, <code class="docutils literal notranslate"><span class="pre">def</span></code>, or <code class="docutils literal notranslate"><span class="pre">if</span></code> keywords, that would have otherwise scrolled
jpayne@68 527 out of view. The size of the pane will be expanded and contracted as needed
jpayne@68 528 to show the all current levels of context, up to the maximum number of
jpayne@68 529 lines defined in the Configure IDLE dialog (which defaults to 15). If there
jpayne@68 530 are no current context lines and the feature is toggled on, a single blank
jpayne@68 531 line will display. Clicking on a line in the context pane will move that
jpayne@68 532 line to the top of the editor.</p>
jpayne@68 533 <p>The text and background colors for the context pane can be configured under
jpayne@68 534 the Highlights tab in the Configure IDLE dialog.</p>
jpayne@68 535 </div>
jpayne@68 536 <div class="section" id="python-shell-window">
jpayne@68 537 <h3>Python Shell window<a class="headerlink" href="#python-shell-window" title="Permalink to this headline">¶</a></h3>
jpayne@68 538 <p>With IDLE’s Shell, one enters, edits, and recalls complete statements.
jpayne@68 539 Most consoles and terminals only work with a single physical line at a time.</p>
jpayne@68 540 <p>When one pastes code into Shell, it is not compiled and possibly executed
jpayne@68 541 until one hits <kbd class="kbd docutils literal notranslate">Return</kbd>. One may edit pasted code first.
jpayne@68 542 If one pastes more that one statement into Shell, the result will be a
jpayne@68 543 <a class="reference internal" href="exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when multiple statements are compiled as if they were one.</p>
jpayne@68 544 <p>The editing features described in previous subsections work when entering
jpayne@68 545 code interactively. IDLE’s Shell window also responds to the following keys.</p>
jpayne@68 546 <ul>
jpayne@68 547 <li><p><kbd class="kbd docutils literal notranslate">C-c</kbd> interrupts executing command</p></li>
jpayne@68 548 <li><p><kbd class="kbd docutils literal notranslate">C-d</kbd> sends end-of-file; closes window if typed at a <code class="docutils literal notranslate"><span class="pre">&gt;&gt;&gt;</span></code> prompt</p></li>
jpayne@68 549 <li><p><kbd class="kbd docutils literal notranslate">Alt-/</kbd> (Expand word) is also useful to reduce typing</p>
jpayne@68 550 <p>Command history</p>
jpayne@68 551 <ul class="simple">
jpayne@68 552 <li><p><kbd class="kbd docutils literal notranslate">Alt-p</kbd> retrieves previous command matching what you have typed. On
jpayne@68 553 macOS use <kbd class="kbd docutils literal notranslate">C-p</kbd>.</p></li>
jpayne@68 554 <li><p><kbd class="kbd docutils literal notranslate">Alt-n</kbd> retrieves next. On macOS use <kbd class="kbd docutils literal notranslate">C-n</kbd>.</p></li>
jpayne@68 555 <li><p><kbd class="kbd docutils literal notranslate">Return</kbd> while on any previous command retrieves that command</p></li>
jpayne@68 556 </ul>
jpayne@68 557 </li>
jpayne@68 558 </ul>
jpayne@68 559 </div>
jpayne@68 560 <div class="section" id="text-colors">
jpayne@68 561 <h3>Text colors<a class="headerlink" href="#text-colors" title="Permalink to this headline">¶</a></h3>
jpayne@68 562 <p>Idle defaults to black on white text, but colors text with special meanings.
jpayne@68 563 For the shell, these are shell output, shell error, user output, and
jpayne@68 564 user error. For Python code, at the shell prompt or in an editor, these are
jpayne@68 565 keywords, builtin class and function names, names following <code class="docutils literal notranslate"><span class="pre">class</span></code> and
jpayne@68 566 <code class="docutils literal notranslate"><span class="pre">def</span></code>, strings, and comments. For any text window, these are the cursor (when
jpayne@68 567 present), found text (when possible), and selected text.</p>
jpayne@68 568 <p>Text coloring is done in the background, so uncolorized text is occasionally
jpayne@68 569 visible. To change the color scheme, use the Configure IDLE dialog
jpayne@68 570 Highlighting tab. The marking of debugger breakpoint lines in the editor and
jpayne@68 571 text in popups and dialogs is not user-configurable.</p>
jpayne@68 572 </div>
jpayne@68 573 </div>
jpayne@68 574 <div class="section" id="startup-and-code-execution">
jpayne@68 575 <h2>Startup and code execution<a class="headerlink" href="#startup-and-code-execution" title="Permalink to this headline">¶</a></h2>
jpayne@68 576 <p>Upon startup with the <code class="docutils literal notranslate"><span class="pre">-s</span></code> option, IDLE will execute the file referenced by
jpayne@68 577 the environment variables <span class="target" id="index-5"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or <span class="target" id="index-6"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>.
jpayne@68 578 IDLE first checks for <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code>; if <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is present the file
jpayne@68 579 referenced is run. If <code class="docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> is not present, IDLE checks for
jpayne@68 580 <code class="docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code>. Files referenced by these environment variables are
jpayne@68 581 convenient places to store functions that are used frequently from the IDLE
jpayne@68 582 shell, or for executing import statements to import common modules.</p>
jpayne@68 583 <p>In addition, <code class="docutils literal notranslate"><span class="pre">Tk</span></code> also loads a startup file if it is present. Note that the
jpayne@68 584 Tk file is loaded unconditionally. This additional file is <code class="docutils literal notranslate"><span class="pre">.Idle.py</span></code> and is
jpayne@68 585 looked for in the user’s home directory. Statements in this file will be
jpayne@68 586 executed in the Tk namespace, so this file is not useful for importing
jpayne@68 587 functions to be used from IDLE’s Python shell.</p>
jpayne@68 588 <div class="section" id="command-line-usage">
jpayne@68 589 <h3>Command line usage<a class="headerlink" href="#command-line-usage" title="Permalink to this headline">¶</a></h3>
jpayne@68 590 <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...
jpayne@68 591
jpayne@68 592 -c command run command in the shell window
jpayne@68 593 -d enable debugger and open shell window
jpayne@68 594 -e open editor window
jpayne@68 595 -h print help message with legal combinations and exit
jpayne@68 596 -i open shell window
jpayne@68 597 -r file run file in shell window
jpayne@68 598 -s run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
jpayne@68 599 -t title set title of shell window
jpayne@68 600 - run stdin in shell (- must be last option before args)
jpayne@68 601 </pre></div>
jpayne@68 602 </div>
jpayne@68 603 <p>If there are arguments:</p>
jpayne@68 604 <ul class="simple">
jpayne@68 605 <li><p>If <code class="docutils literal notranslate"><span class="pre">-</span></code>, <code class="docutils literal notranslate"><span class="pre">-c</span></code>, or <code class="docutils literal notranslate"><span class="pre">r</span></code> is used, all arguments are placed in
jpayne@68 606 <code class="docutils literal notranslate"><span class="pre">sys.argv[1:...]</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.argv[0]</span></code> is set to <code class="docutils literal notranslate"><span class="pre">''</span></code>, <code class="docutils literal notranslate"><span class="pre">'-c'</span></code>,
jpayne@68 607 or <code class="docutils literal notranslate"><span class="pre">'-r'</span></code>. No editor window is opened, even if that is the default
jpayne@68 608 set in the Options dialog.</p></li>
jpayne@68 609 <li><p>Otherwise, arguments are files opened for editing and
jpayne@68 610 <code class="docutils literal notranslate"><span class="pre">sys.argv</span></code> reflects the arguments passed to IDLE itself.</p></li>
jpayne@68 611 </ul>
jpayne@68 612 </div>
jpayne@68 613 <div class="section" id="startup-failure">
jpayne@68 614 <h3>Startup failure<a class="headerlink" href="#startup-failure" title="Permalink to this headline">¶</a></h3>
jpayne@68 615 <p>IDLE uses a socket to communicate between the IDLE GUI process and the user
jpayne@68 616 code execution process. A connection must be established whenever the Shell
jpayne@68 617 starts or restarts. (The latter is indicated by a divider line that says
jpayne@68 618 ‘RESTART’). If the user process fails to connect to the GUI process, it
jpayne@68 619 displays a <code class="docutils literal notranslate"><span class="pre">Tk</span></code> error box with a ‘cannot connect’ message that directs the
jpayne@68 620 user here. It then exits.</p>
jpayne@68 621 <p>A common cause of failure is a user-written file with the same name as a
jpayne@68 622 standard library module, such as <em>random.py</em> and <em>tkinter.py</em>. When such a
jpayne@68 623 file is located in the same directory as a file that is about to be run,
jpayne@68 624 IDLE cannot import the stdlib file. The current fix is to rename the
jpayne@68 625 user file.</p>
jpayne@68 626 <p>Though less common than in the past, an antivirus or firewall program may
jpayne@68 627 stop the connection. If the program cannot be taught to allow the
jpayne@68 628 connection, then it must be turned off for IDLE to work. It is safe to
jpayne@68 629 allow this internal connection because no data is visible on external
jpayne@68 630 ports. A similar problem is a network mis-configuration that blocks
jpayne@68 631 connections.</p>
jpayne@68 632 <p>Python installation issues occasionally stop IDLE: multiple versions can
jpayne@68 633 clash, or a single installation might need admin access. If one undo the
jpayne@68 634 clash, or cannot or does not want to run as admin, it might be easiest to
jpayne@68 635 completely remove Python and start over.</p>
jpayne@68 636 <p>A zombie pythonw.exe process could be a problem. On Windows, use Task
jpayne@68 637 Manager to detect and stop one. Sometimes a restart initiated by a program
jpayne@68 638 crash or Keyboard Interrupt (control-C) may fail to connect. Dismissing
jpayne@68 639 the error box or Restart Shell on the Shell menu may fix a temporary problem.</p>
jpayne@68 640 <p>When IDLE first starts, it attempts to read user configuration files in
jpayne@68 641 ~/.idlerc/ (~ is one’s home directory). If there is a problem, an error
jpayne@68 642 message should be displayed. Leaving aside random disk glitches, this can
jpayne@68 643 be prevented by never editing the files by hand, using the configuration
jpayne@68 644 dialog, under Options, instead Options. Once it happens, the solution may
jpayne@68 645 be to delete one or more of the configuration files.</p>
jpayne@68 646 <p>If IDLE quits with no message, and it was not started from a console, try
jpayne@68 647 starting from a console (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">idlelib)</span></code> and see if a message appears.</p>
jpayne@68 648 </div>
jpayne@68 649 <div class="section" id="running-user-code">
jpayne@68 650 <h3>Running user code<a class="headerlink" href="#running-user-code" title="Permalink to this headline">¶</a></h3>
jpayne@68 651 <p>With rare exceptions, the result of executing Python code with IDLE is
jpayne@68 652 intended to be the same as executing the same code by the default method,
jpayne@68 653 directly with Python in a text-mode system console or terminal window.
jpayne@68 654 However, the different interface and operation occasionally affect
jpayne@68 655 visible results. For instance, <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> starts with more entries,
jpayne@68 656 and <code class="docutils literal notranslate"><span class="pre">threading.activeCount()</span></code> returns 2 instead of 1.</p>
jpayne@68 657 <p>By default, IDLE runs user code in a separate OS process rather than in
jpayne@68 658 the user interface process that runs the shell and editor. In the execution
jpayne@68 659 process, it replaces <code class="docutils literal notranslate"><span class="pre">sys.stdin</span></code>, <code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code>, and <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code>
jpayne@68 660 with objects that get input from and send output to the Shell window.
jpayne@68 661 The original values stored in <code class="docutils literal notranslate"><span class="pre">sys.__stdin__</span></code>, <code class="docutils literal notranslate"><span class="pre">sys.__stdout__</span></code>, and
jpayne@68 662 <code class="docutils literal notranslate"><span class="pre">sys.__stderr__</span></code> are not touched, but may be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>
jpayne@68 663 <p>When Shell has the focus, it controls the keyboard and screen. This is
jpayne@68 664 normally transparent, but functions that directly access the keyboard
jpayne@68 665 and screen will not work. These include system-specific functions that
jpayne@68 666 determine whether a key has been pressed and if so, which.</p>
jpayne@68 667 <p>IDLE’s standard stream replacements are not inherited by subprocesses
jpayne@68 668 created in the execution process, whether directly by user code or by modules
jpayne@68 669 such as multiprocessing. If such subprocess use <code class="docutils literal notranslate"><span class="pre">input</span></code> from sys.stdin
jpayne@68 670 or <code class="docutils literal notranslate"><span class="pre">print</span></code> or <code class="docutils literal notranslate"><span class="pre">write</span></code> to sys.stdout or sys.stderr,
jpayne@68 671 IDLE should be started in a command line window. The secondary subprocess
jpayne@68 672 will then be attached to that window for input and output.</p>
jpayne@68 673 <p>The IDLE code running in the execution process adds frames to the call stack
jpayne@68 674 that would not be there otherwise. IDLE wraps <code class="docutils literal notranslate"><span class="pre">sys.getrecursionlimit</span></code> and
jpayne@68 675 <code class="docutils literal notranslate"><span class="pre">sys.setrecursionlimit</span></code> to reduce the effect of the additional stack frames.</p>
jpayne@68 676 <p>If <code class="docutils literal notranslate"><span class="pre">sys</span></code> is reset by user code, such as with <code class="docutils literal notranslate"><span class="pre">importlib.reload(sys)</span></code>,
jpayne@68 677 IDLE’s changes are lost and input from the keyboard and output to the screen
jpayne@68 678 will not work correctly.</p>
jpayne@68 679 <p>When user code raises SystemExit either directly or by calling sys.exit, IDLE
jpayne@68 680 returns to a Shell prompt instead of exiting.</p>
jpayne@68 681 </div>
jpayne@68 682 <div class="section" id="user-output-in-shell">
jpayne@68 683 <h3>User output in Shell<a class="headerlink" href="#user-output-in-shell" title="Permalink to this headline">¶</a></h3>
jpayne@68 684 <p>When a program outputs text, the result is determined by the
jpayne@68 685 corresponding output device. When IDLE executes user code, <code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code>
jpayne@68 686 and <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code> are connected to the display area of IDLE’s Shell. Some of
jpayne@68 687 its features are inherited from the underlying Tk Text widget. Others
jpayne@68 688 are programmed additions. Where it matters, Shell is designed for development
jpayne@68 689 rather than production runs.</p>
jpayne@68 690 <p>For instance, Shell never throws away output. A program that sends unlimited
jpayne@68 691 output to Shell will eventually fill memory, resulting in a memory error.
jpayne@68 692 In contrast, some system text windows only keep the last n lines of output.
jpayne@68 693 A Windows console, for instance, keeps a user-settable 1 to 9999 lines,
jpayne@68 694 with 300 the default.</p>
jpayne@68 695 <p>A Tk Text widget, and hence IDLE’s Shell, displays characters (codepoints) in
jpayne@68 696 the BMP (Basic Multilingual Plane) subset of Unicode. Which characters are
jpayne@68 697 displayed with a proper glyph and which with a replacement box depends on the
jpayne@68 698 operating system and installed fonts. Tab characters cause the following text
jpayne@68 699 to begin after the next tab stop. (They occur every 8 ‘characters’). Newline
jpayne@68 700 characters cause following text to appear on a new line. Other control
jpayne@68 701 characters are ignored or displayed as a space, box, or something else,
jpayne@68 702 depending on the operating system and font. (Moving the text cursor through
jpayne@68 703 such output with arrow keys may exhibit some surprising spacing behavior.)</p>
jpayne@68 704 <div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="s1">&#39;a</span><span class="se">\t</span><span class="s1">b</span><span class="se">\a</span><span class="s1">&lt;</span><span class="se">\x02</span><span class="s1">&gt;&lt;</span><span class="se">\r</span><span class="s1">&gt;</span><span class="se">\b</span><span class="s1">c</span><span class="se">\n</span><span class="s1">d&#39;</span> <span class="c1"># Enter 22 chars.</span>
jpayne@68 705 <span class="gp">&gt;&gt;&gt; </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
jpayne@68 706 <span class="go">14</span>
jpayne@68 707 <span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="c1"># Display repr(s)</span>
jpayne@68 708 <span class="go">&#39;a\tb\x07&lt;\x02&gt;&lt;\r&gt;\x08c\nd&#39;</span>
jpayne@68 709 <span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="c1"># Display s as is.</span>
jpayne@68 710 <span class="go"># Result varies by OS and font. Try it.</span>
jpayne@68 711 </pre></div>
jpayne@68 712 </div>
jpayne@68 713 <p>The <code class="docutils literal notranslate"><span class="pre">repr</span></code> function is used for interactive echo of expression
jpayne@68 714 values. It returns an altered version of the input string in which
jpayne@68 715 control codes, some BMP codepoints, and all non-BMP codepoints are
jpayne@68 716 replaced with escape codes. As demonstrated above, it allows one to
jpayne@68 717 identify the characters in a string, regardless of how they are displayed.</p>
jpayne@68 718 <p>Normal and error output are generally kept separate (on separate lines)
jpayne@68 719 from code input and each other. They each get different highlight colors.</p>
jpayne@68 720 <p>For SyntaxError tracebacks, the normal ‘^’ marking where the error was
jpayne@68 721 detected is replaced by coloring the text with an error highlight.
jpayne@68 722 When code run from a file causes other exceptions, one may right click
jpayne@68 723 on a traceback line to jump to the corresponding line in an IDLE editor.
jpayne@68 724 The file will be opened if necessary.</p>
jpayne@68 725 <p>Shell has a special facility for squeezing output lines down to a
jpayne@68 726 ‘Squeezed text’ label. This is done automatically
jpayne@68 727 for output over N lines (N = 50 by default).
jpayne@68 728 N can be changed in the PyShell section of the General
jpayne@68 729 page of the Settings dialog. Output with fewer lines can be squeezed by
jpayne@68 730 right clicking on the output. This can be useful lines long enough to slow
jpayne@68 731 down scrolling.</p>
jpayne@68 732 <p>Squeezed output is expanded in place by double-clicking the label.
jpayne@68 733 It can also be sent to the clipboard or a separate view window by
jpayne@68 734 right-clicking the label.</p>
jpayne@68 735 </div>
jpayne@68 736 <div class="section" id="developing-tkinter-applications">
jpayne@68 737 <h3>Developing tkinter applications<a class="headerlink" href="#developing-tkinter-applications" title="Permalink to this headline">¶</a></h3>
jpayne@68 738 <p>IDLE is intentionally different from standard Python in order to
jpayne@68 739 facilitate development of tkinter programs. Enter <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">tkinter</span> <span class="pre">as</span> <span class="pre">tk;</span>
jpayne@68 740 <span class="pre">root</span> <span class="pre">=</span> <span class="pre">tk.Tk()</span></code> in standard Python and nothing appears. Enter the same
jpayne@68 741 in IDLE and a tk window appears. In standard Python, one must also enter
jpayne@68 742 <code class="docutils literal notranslate"><span class="pre">root.update()</span></code> to see the window. IDLE does the equivalent in the
jpayne@68 743 background, about 20 times a second, which is about every 50 milliseconds.
jpayne@68 744 Next enter <code class="docutils literal notranslate"><span class="pre">b</span> <span class="pre">=</span> <span class="pre">tk.Button(root,</span> <span class="pre">text='button');</span> <span class="pre">b.pack()</span></code>. Again,
jpayne@68 745 nothing visibly changes in standard Python until one enters <code class="docutils literal notranslate"><span class="pre">root.update()</span></code>.</p>
jpayne@68 746 <p>Most tkinter programs run <code class="docutils literal notranslate"><span class="pre">root.mainloop()</span></code>, which usually does not
jpayne@68 747 return until the tk app is destroyed. If the program is run with
jpayne@68 748 <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span></code> or from an IDLE editor, a <code class="docutils literal notranslate"><span class="pre">&gt;&gt;&gt;</span></code> shell prompt does not
jpayne@68 749 appear until <code class="docutils literal notranslate"><span class="pre">mainloop()</span></code> returns, at which time there is nothing left
jpayne@68 750 to interact with.</p>
jpayne@68 751 <p>When running a tkinter program from an IDLE editor, one can comment out
jpayne@68 752 the mainloop call. One then gets a shell prompt immediately and can
jpayne@68 753 interact with the live application. One just has to remember to
jpayne@68 754 re-enable the mainloop call when running in standard Python.</p>
jpayne@68 755 </div>
jpayne@68 756 <div class="section" id="running-without-a-subprocess">
jpayne@68 757 <h3>Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3>
jpayne@68 758 <p>By default, IDLE executes user code in a separate subprocess via a socket,
jpayne@68 759 which uses the internal loopback interface. This connection is not
jpayne@68 760 externally visible and no data is sent to or received from the Internet.
jpayne@68 761 If firewall software complains anyway, you can ignore it.</p>
jpayne@68 762 <p>If the attempt to make the socket connection fails, Idle will notify you.
jpayne@68 763 Such failures are sometimes transient, but if persistent, the problem
jpayne@68 764 may be either a firewall blocking the connection or misconfiguration of
jpayne@68 765 a particular system. Until the problem is fixed, one can run Idle with
jpayne@68 766 the -n command line switch.</p>
jpayne@68 767 <p>If IDLE is started with the -n command line switch it will run in a
jpayne@68 768 single process and will not create the subprocess which runs the RPC
jpayne@68 769 Python execution server. This can be useful if Python cannot create
jpayne@68 770 the subprocess or the RPC socket interface on your platform. However,
jpayne@68 771 in this mode user code is not isolated from IDLE itself. Also, the
jpayne@68 772 environment is not restarted when Run/Run Module (F5) is selected. If
jpayne@68 773 your code has been modified, you must reload() the affected modules and
jpayne@68 774 re-import any specific items (e.g. from foo import baz) if the changes
jpayne@68 775 are to take effect. For these reasons, it is preferable to run IDLE
jpayne@68 776 with the default subprocess if at all possible.</p>
jpayne@68 777 <div class="deprecated">
jpayne@68 778 <p><span class="versionmodified deprecated">Deprecated since version 3.4.</span></p>
jpayne@68 779 </div>
jpayne@68 780 </div>
jpayne@68 781 </div>
jpayne@68 782 <div class="section" id="help-and-preferences">
jpayne@68 783 <h2>Help and preferences<a class="headerlink" href="#help-and-preferences" title="Permalink to this headline">¶</a></h2>
jpayne@68 784 <div class="section" id="help-sources">
jpayne@68 785 <span id="id6"></span><h3>Help sources<a class="headerlink" href="#help-sources" title="Permalink to this headline">¶</a></h3>
jpayne@68 786 <p>Help menu entry “IDLE Help” displays a formatted html version of the
jpayne@68 787 IDLE chapter of the Library Reference. The result, in a read-only
jpayne@68 788 tkinter text window, is close to what one sees in a web browser.
jpayne@68 789 Navigate through the text with a mousewheel,
jpayne@68 790 the scrollbar, or up and down arrow keys held down.
jpayne@68 791 Or click the TOC (Table of Contents) button and select a section
jpayne@68 792 header in the opened box.</p>
jpayne@68 793 <p>Help menu entry “Python Docs” opens the extensive sources of help,
jpayne@68 794 including tutorials, available at docs.python.org/x.y, where ‘x.y’
jpayne@68 795 is the currently running Python version. If your system
jpayne@68 796 has an off-line copy of the docs (this may be an installation option),
jpayne@68 797 that will be opened instead.</p>
jpayne@68 798 <p>Selected URLs can be added or removed from the help menu at any time using the
jpayne@68 799 General tab of the Configure IDLE dialog .</p>
jpayne@68 800 </div>
jpayne@68 801 <div class="section" id="setting-preferences">
jpayne@68 802 <span id="preferences"></span><h3>Setting preferences<a class="headerlink" href="#setting-preferences" title="Permalink to this headline">¶</a></h3>
jpayne@68 803 <p>The font preferences, highlighting, keys, and general preferences can be
jpayne@68 804 changed via Configure IDLE on the Option menu.
jpayne@68 805 Non-default user settings are saved in a .idlerc directory in the user’s
jpayne@68 806 home directory. Problems caused by bad user configuration files are solved
jpayne@68 807 by editing or deleting one or more of the files in .idlerc.</p>
jpayne@68 808 <p>On the Font tab, see the text sample for the effect of font face and size
jpayne@68 809 on multiple characters in multiple languages. Edit the sample to add
jpayne@68 810 other characters of personal interest. Use the sample to select
jpayne@68 811 monospaced fonts. If particular characters have problems in Shell or an
jpayne@68 812 editor, add them to the top of the sample and try changing first size
jpayne@68 813 and then font.</p>
jpayne@68 814 <p>On the Highlights and Keys tab, select a built-in or custom color theme
jpayne@68 815 and key set. To use a newer built-in color theme or key set with older
jpayne@68 816 IDLEs, save it as a new custom theme or key set and it well be accessible
jpayne@68 817 to older IDLEs.</p>
jpayne@68 818 </div>
jpayne@68 819 <div class="section" id="idle-on-macos">
jpayne@68 820 <h3>IDLE on macOS<a class="headerlink" href="#idle-on-macos" title="Permalink to this headline">¶</a></h3>
jpayne@68 821 <p>Under System Preferences: Dock, one can set “Prefer tabs when opening
jpayne@68 822 documents” to “Always”. This setting is not compatible with the tk/tkinter
jpayne@68 823 GUI framework used by IDLE, and it breaks a few IDLE features.</p>
jpayne@68 824 </div>
jpayne@68 825 <div class="section" id="extensions">
jpayne@68 826 <h3>Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h3>
jpayne@68 827 <p>IDLE contains an extension facility. Preferences for extensions can be
jpayne@68 828 changed with the Extensions tab of the preferences dialog. See the
jpayne@68 829 beginning of config-extensions.def in the idlelib directory for further
jpayne@68 830 information. The only current default extension is zzdummy, an example
jpayne@68 831 also used for testing.</p>
jpayne@68 832 </div>
jpayne@68 833 </div>
jpayne@68 834 </div>
jpayne@68 835
jpayne@68 836
jpayne@68 837 </div>
jpayne@68 838 </div>
jpayne@68 839 </div>
jpayne@68 840 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
jpayne@68 841 <div class="sphinxsidebarwrapper">
jpayne@68 842 <h3><a href="../contents.html">Table of Contents</a></h3>
jpayne@68 843 <ul>
jpayne@68 844 <li><a class="reference internal" href="#">IDLE</a><ul>
jpayne@68 845 <li><a class="reference internal" href="#menus">Menus</a><ul>
jpayne@68 846 <li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li>
jpayne@68 847 <li><a class="reference internal" href="#edit-menu-shell-and-editor">Edit menu (Shell and Editor)</a></li>
jpayne@68 848 <li><a class="reference internal" href="#format-menu-editor-window-only">Format menu (Editor window only)</a></li>
jpayne@68 849 <li><a class="reference internal" href="#run-menu-editor-window-only">Run menu (Editor window only)</a></li>
jpayne@68 850 <li><a class="reference internal" href="#shell-menu-shell-window-only">Shell menu (Shell window only)</a></li>
jpayne@68 851 <li><a class="reference internal" href="#debug-menu-shell-window-only">Debug menu (Shell window only)</a></li>
jpayne@68 852 <li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li>
jpayne@68 853 <li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li>
jpayne@68 854 <li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li>
jpayne@68 855 <li><a class="reference internal" href="#context-menus">Context Menus</a></li>
jpayne@68 856 </ul>
jpayne@68 857 </li>
jpayne@68 858 <li><a class="reference internal" href="#editing-and-navigation">Editing and navigation</a><ul>
jpayne@68 859 <li><a class="reference internal" href="#editor-windows">Editor windows</a></li>
jpayne@68 860 <li><a class="reference internal" href="#key-bindings">Key bindings</a></li>
jpayne@68 861 <li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li>
jpayne@68 862 <li><a class="reference internal" href="#completions">Completions</a></li>
jpayne@68 863 <li><a class="reference internal" href="#calltips">Calltips</a></li>
jpayne@68 864 <li><a class="reference internal" href="#code-context">Code Context</a></li>
jpayne@68 865 <li><a class="reference internal" href="#python-shell-window">Python Shell window</a></li>
jpayne@68 866 <li><a class="reference internal" href="#text-colors">Text colors</a></li>
jpayne@68 867 </ul>
jpayne@68 868 </li>
jpayne@68 869 <li><a class="reference internal" href="#startup-and-code-execution">Startup and code execution</a><ul>
jpayne@68 870 <li><a class="reference internal" href="#command-line-usage">Command line usage</a></li>
jpayne@68 871 <li><a class="reference internal" href="#startup-failure">Startup failure</a></li>
jpayne@68 872 <li><a class="reference internal" href="#running-user-code">Running user code</a></li>
jpayne@68 873 <li><a class="reference internal" href="#user-output-in-shell">User output in Shell</a></li>
jpayne@68 874 <li><a class="reference internal" href="#developing-tkinter-applications">Developing tkinter applications</a></li>
jpayne@68 875 <li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li>
jpayne@68 876 </ul>
jpayne@68 877 </li>
jpayne@68 878 <li><a class="reference internal" href="#help-and-preferences">Help and preferences</a><ul>
jpayne@68 879 <li><a class="reference internal" href="#help-sources">Help sources</a></li>
jpayne@68 880 <li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li>
jpayne@68 881 <li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li>
jpayne@68 882 <li><a class="reference internal" href="#extensions">Extensions</a></li>
jpayne@68 883 </ul>
jpayne@68 884 </li>
jpayne@68 885 </ul>
jpayne@68 886 </li>
jpayne@68 887 </ul>
jpayne@68 888
jpayne@68 889 <h4>Previous topic</h4>
jpayne@68 890 <p class="topless"><a href="tkinter.tix.html"
jpayne@68 891 title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> — Extension widgets for Tk</a></p>
jpayne@68 892 <h4>Next topic</h4>
jpayne@68 893 <p class="topless"><a href="othergui.html"
jpayne@68 894 title="next chapter">Other Graphical User Interface Packages</a></p>
jpayne@68 895 <div role="note" aria-label="source link">
jpayne@68 896 <h3>This Page</h3>
jpayne@68 897 <ul class="this-page-menu">
jpayne@68 898 <li><a href="../bugs.html">Report a Bug</a></li>
jpayne@68 899 <li>
jpayne@68 900 <a href="https://github.com/python/cpython/blob/master/Doc/library/idle.rst"
jpayne@68 901 rel="nofollow">Show Source
jpayne@68 902 </a>
jpayne@68 903 </li>
jpayne@68 904 </ul>
jpayne@68 905 </div>
jpayne@68 906 </div>
jpayne@68 907 </div>
jpayne@68 908 <div class="clearer"></div>
jpayne@68 909 </div>
jpayne@68 910 <div class="related" role="navigation" aria-label="related navigation">
jpayne@68 911 <h3>Navigation</h3>
jpayne@68 912 <ul>
jpayne@68 913 <li class="right" style="margin-right: 10px">
jpayne@68 914 <a href="../genindex.html" title="General Index"
jpayne@68 915 >index</a></li>
jpayne@68 916 <li class="right" >
jpayne@68 917 <a href="../py-modindex.html" title="Python Module Index"
jpayne@68 918 >modules</a> |</li>
jpayne@68 919 <li class="right" >
jpayne@68 920 <a href="othergui.html" title="Other Graphical User Interface Packages"
jpayne@68 921 >next</a> |</li>
jpayne@68 922 <li class="right" >
jpayne@68 923 <a href="tkinter.tix.html" title="tkinter.tix — Extension widgets for Tk"
jpayne@68 924 >previous</a> |</li>
jpayne@68 925
jpayne@68 926 <li><img src="../_static/py.png" alt=""
jpayne@68 927 style="vertical-align: middle; margin-top: -1px"/></li>
jpayne@68 928 <li><a href="https://www.python.org/">Python</a> &#187;</li>
jpayne@68 929
jpayne@68 930
jpayne@68 931 <li>
jpayne@68 932 <a href="../index.html">3.9.0a1 Documentation</a> &#187;
jpayne@68 933 </li>
jpayne@68 934
jpayne@68 935 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
jpayne@68 936 <li class="nav-item nav-item-2"><a href="tk.html" >Graphical User Interfaces with Tk</a> &#187;</li>
jpayne@68 937 <li class="right">
jpayne@68 938
jpayne@68 939
jpayne@68 940 <div class="inline-search" style="display: none" role="search">
jpayne@68 941 <form class="inline-search" action="../search.html" method="get">
jpayne@68 942 <input placeholder="Quick search" type="text" name="q" />
jpayne@68 943 <input type="submit" value="Go" />
jpayne@68 944 <input type="hidden" name="check_keywords" value="yes" />
jpayne@68 945 <input type="hidden" name="area" value="default" />
jpayne@68 946 </form>
jpayne@68 947 </div>
jpayne@68 948 <script type="text/javascript">$('.inline-search').show(0);</script>
jpayne@68 949 |
jpayne@68 950 </li>
jpayne@68 951
jpayne@68 952 </ul>
jpayne@68 953 </div>
jpayne@68 954 <div class="footer">
jpayne@68 955 &copy; <a href="../copyright.html">Copyright</a> 2001-2019, Python Software Foundation.
jpayne@68 956 <br />
jpayne@68 957
jpayne@68 958 The Python Software Foundation is a non-profit corporation.
jpayne@68 959 <a href="https://www.python.org/psf/donations/">Please donate.</a>
jpayne@68 960 <br />
jpayne@68 961 <br />
jpayne@68 962
jpayne@68 963 Last updated on Nov 24, 2019.
jpayne@68 964 <a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
jpayne@68 965 <br />
jpayne@68 966
jpayne@68 967 Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 2.1.1.
jpayne@68 968 </div>
jpayne@68 969
jpayne@68 970 </body>
jpayne@68 971 </html>