17db96d56Sopenharmony_ci:mod:`tkinter.ttk` --- Tk themed widgets 27db96d56Sopenharmony_ci======================================== 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci.. module:: tkinter.ttk 57db96d56Sopenharmony_ci :synopsis: Tk themed widget set 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ci.. sectionauthor:: Guilherme Polo <ggpolo@gmail.com> 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ci**Source code:** :source:`Lib/tkinter/ttk.py` 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci.. index:: single: ttk 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci-------------- 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ciThe :mod:`tkinter.ttk` module provides access to the Tk themed widget set, 167db96d56Sopenharmony_ciintroduced in Tk 8.5. It provides additional benefits including anti-aliased font 177db96d56Sopenharmony_cirendering under X11 and window transparency (requiring a composition 187db96d56Sopenharmony_ciwindow manager on X11). 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ciThe basic idea for :mod:`tkinter.ttk` is to separate, to the extent possible, 217db96d56Sopenharmony_cithe code implementing a widget's behavior from the code implementing its 227db96d56Sopenharmony_ciappearance. 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ci.. seealso:: 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci `Tk Widget Styling Support <https://core.tcl.tk/tips/doc/trunk/tip/48.md>`_ 287db96d56Sopenharmony_ci A document introducing theming support for Tk 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ciUsing Ttk 327db96d56Sopenharmony_ci--------- 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ciTo start using Ttk, import its module:: 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ci from tkinter import ttk 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ciTo override the basic Tk widgets, the import should follow the Tk import:: 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ci from tkinter import * 417db96d56Sopenharmony_ci from tkinter.ttk import * 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ciThat code causes several :mod:`tkinter.ttk` widgets (:class:`Button`, 447db96d56Sopenharmony_ci:class:`Checkbutton`, :class:`Entry`, :class:`Frame`, :class:`Label`, 457db96d56Sopenharmony_ci:class:`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, 467db96d56Sopenharmony_ci:class:`Radiobutton`, :class:`Scale` and :class:`Scrollbar`) to 477db96d56Sopenharmony_ciautomatically replace the Tk widgets. 487db96d56Sopenharmony_ci 497db96d56Sopenharmony_ciThis has the direct benefit of using the new widgets which gives a better 507db96d56Sopenharmony_cilook and feel across platforms; however, the replacement widgets are not 517db96d56Sopenharmony_cicompletely compatible. The main difference is that widget options such as 527db96d56Sopenharmony_ci"fg", "bg" and others related to widget styling are no 537db96d56Sopenharmony_cilonger present in Ttk widgets. Instead, use the :class:`ttk.Style` class 547db96d56Sopenharmony_cifor improved styling effects. 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci 577db96d56Sopenharmony_ci.. seealso:: 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_ci `Converting existing applications to use Tile widgets <https://tktable.sourceforge.net/tile/doc/converting.txt>`_ 607db96d56Sopenharmony_ci A monograph (using Tcl terminology) about differences typically 617db96d56Sopenharmony_ci encountered when moving applications to use the new widgets. 627db96d56Sopenharmony_ci 637db96d56Sopenharmony_ci 647db96d56Sopenharmony_ciTtk Widgets 657db96d56Sopenharmony_ci----------- 667db96d56Sopenharmony_ci 677db96d56Sopenharmony_ciTtk comes with 18 widgets, twelve of which already existed in tkinter: 687db96d56Sopenharmony_ci:class:`Button`, :class:`Checkbutton`, :class:`Entry`, :class:`Frame`, 697db96d56Sopenharmony_ci:class:`Label`, :class:`LabelFrame`, :class:`Menubutton`, :class:`PanedWindow`, 707db96d56Sopenharmony_ci:class:`Radiobutton`, :class:`Scale`, :class:`Scrollbar`, and :class:`Spinbox`. 717db96d56Sopenharmony_ciThe other six are new: :class:`Combobox`, :class:`Notebook`, 727db96d56Sopenharmony_ci:class:`Progressbar`, :class:`Separator`, :class:`Sizegrip` and 737db96d56Sopenharmony_ci:class:`Treeview`. And all them are subclasses of :class:`Widget`. 747db96d56Sopenharmony_ci 757db96d56Sopenharmony_ciUsing the Ttk widgets gives the application an improved look and feel. 767db96d56Sopenharmony_ciAs discussed above, there are differences in how the styling is coded. 777db96d56Sopenharmony_ci 787db96d56Sopenharmony_ciTk code:: 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ci l1 = tkinter.Label(text="Test", fg="black", bg="white") 817db96d56Sopenharmony_ci l2 = tkinter.Label(text="Test", fg="black", bg="white") 827db96d56Sopenharmony_ci 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ciTtk code:: 857db96d56Sopenharmony_ci 867db96d56Sopenharmony_ci style = ttk.Style() 877db96d56Sopenharmony_ci style.configure("BW.TLabel", foreground="black", background="white") 887db96d56Sopenharmony_ci 897db96d56Sopenharmony_ci l1 = ttk.Label(text="Test", style="BW.TLabel") 907db96d56Sopenharmony_ci l2 = ttk.Label(text="Test", style="BW.TLabel") 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ciFor more information about TtkStyling_, see the :class:`Style` class 937db96d56Sopenharmony_cidocumentation. 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ciWidget 967db96d56Sopenharmony_ci------ 977db96d56Sopenharmony_ci 987db96d56Sopenharmony_ci:class:`ttk.Widget` defines standard options and methods supported by Tk 997db96d56Sopenharmony_cithemed widgets and is not supposed to be directly instantiated. 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_ci 1027db96d56Sopenharmony_ciStandard Options 1037db96d56Sopenharmony_ci^^^^^^^^^^^^^^^^ 1047db96d56Sopenharmony_ci 1057db96d56Sopenharmony_ciAll the :mod:`ttk` Widgets accepts the following options: 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 1087db96d56Sopenharmony_ci 1097db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 1107db96d56Sopenharmony_ci | Option | Description | 1117db96d56Sopenharmony_ci +===========+==============================================================+ 1127db96d56Sopenharmony_ci | class | Specifies the window class. The class is used when querying | 1137db96d56Sopenharmony_ci | | the option database for the window's other options, to | 1147db96d56Sopenharmony_ci | | determine the default bindtags for the window, and to select | 1157db96d56Sopenharmony_ci | | the widget's default layout and style. This option is | 1167db96d56Sopenharmony_ci | | read-only, and may only be specified when the window is | 1177db96d56Sopenharmony_ci | | created. | 1187db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 1197db96d56Sopenharmony_ci | cursor | Specifies the mouse cursor to be used for the widget. If set | 1207db96d56Sopenharmony_ci | | to the empty string (the default), the cursor is inherited | 1217db96d56Sopenharmony_ci | | for the parent widget. | 1227db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 1237db96d56Sopenharmony_ci | takefocus | Determines whether the window accepts the focus during | 1247db96d56Sopenharmony_ci | | keyboard traversal. 0, 1 or an empty string is returned. | 1257db96d56Sopenharmony_ci | | If 0 is returned, it means that the window should be skipped | 1267db96d56Sopenharmony_ci | | entirely during keyboard traversal. If 1, it means that the | 1277db96d56Sopenharmony_ci | | window should receive the input focus as long as it is | 1287db96d56Sopenharmony_ci | | viewable. And an empty string means that the traversal | 1297db96d56Sopenharmony_ci | | scripts make the decision about whether or not to focus | 1307db96d56Sopenharmony_ci | | on the window. | 1317db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 1327db96d56Sopenharmony_ci | style | May be used to specify a custom widget style. | 1337db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 1347db96d56Sopenharmony_ci 1357db96d56Sopenharmony_ci 1367db96d56Sopenharmony_ciScrollable Widget Options 1377db96d56Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^^^ 1387db96d56Sopenharmony_ci 1397db96d56Sopenharmony_ciThe following options are supported by widgets that are controlled by a 1407db96d56Sopenharmony_ciscrollbar. 1417db96d56Sopenharmony_ci 1427db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_ci +----------------+---------------------------------------------------------+ 1457db96d56Sopenharmony_ci | Option | Description | 1467db96d56Sopenharmony_ci +================+=========================================================+ 1477db96d56Sopenharmony_ci | xscrollcommand | Used to communicate with horizontal scrollbars. | 1487db96d56Sopenharmony_ci | | | 1497db96d56Sopenharmony_ci | | When the view in the widget's window change, the widget | 1507db96d56Sopenharmony_ci | | will generate a Tcl command based on the scrollcommand. | 1517db96d56Sopenharmony_ci | | | 1527db96d56Sopenharmony_ci | | Usually this option consists of the method | 1537db96d56Sopenharmony_ci | | :meth:`Scrollbar.set` of some scrollbar. This will cause| 1547db96d56Sopenharmony_ci | | the scrollbar to be updated whenever the view in the | 1557db96d56Sopenharmony_ci | | window changes. | 1567db96d56Sopenharmony_ci +----------------+---------------------------------------------------------+ 1577db96d56Sopenharmony_ci | yscrollcommand | Used to communicate with vertical scrollbars. | 1587db96d56Sopenharmony_ci | | For some more information, see above. | 1597db96d56Sopenharmony_ci +----------------+---------------------------------------------------------+ 1607db96d56Sopenharmony_ci 1617db96d56Sopenharmony_ci 1627db96d56Sopenharmony_ciLabel Options 1637db96d56Sopenharmony_ci^^^^^^^^^^^^^ 1647db96d56Sopenharmony_ci 1657db96d56Sopenharmony_ciThe following options are supported by labels, buttons and other button-like 1667db96d56Sopenharmony_ciwidgets. 1677db96d56Sopenharmony_ci 1687db96d56Sopenharmony_ci .. tabularcolumns:: |l|p{0.7\linewidth}| 1697db96d56Sopenharmony_ci 1707db96d56Sopenharmony_ci +--------------+-----------------------------------------------------------+ 1717db96d56Sopenharmony_ci | Option | Description | 1727db96d56Sopenharmony_ci +==============+===========================================================+ 1737db96d56Sopenharmony_ci | text | Specifies a text string to be displayed inside the widget.| 1747db96d56Sopenharmony_ci +--------------+-----------------------------------------------------------+ 1757db96d56Sopenharmony_ci | textvariable | Specifies a name whose value will be used in place of the | 1767db96d56Sopenharmony_ci | | text option resource. | 1777db96d56Sopenharmony_ci +--------------+-----------------------------------------------------------+ 1787db96d56Sopenharmony_ci | underline | If set, specifies the index (0-based) of a character to | 1797db96d56Sopenharmony_ci | | underline in the text string. The underline character is | 1807db96d56Sopenharmony_ci | | used for mnemonic activation. | 1817db96d56Sopenharmony_ci +--------------+-----------------------------------------------------------+ 1827db96d56Sopenharmony_ci | image | Specifies an image to display. This is a list of 1 or more| 1837db96d56Sopenharmony_ci | | elements. The first element is the default image name. The| 1847db96d56Sopenharmony_ci | | rest of the list if a sequence of statespec/value pairs as| 1857db96d56Sopenharmony_ci | | defined by :meth:`Style.map`, specifying different images | 1867db96d56Sopenharmony_ci | | to use when the widget is in a particular state or a | 1877db96d56Sopenharmony_ci | | combination of states. All images in the list should have | 1887db96d56Sopenharmony_ci | | the same size. | 1897db96d56Sopenharmony_ci +--------------+-----------------------------------------------------------+ 1907db96d56Sopenharmony_ci | compound | Specifies how to display the image relative to the text, | 1917db96d56Sopenharmony_ci | | in the case both text and images options are present. | 1927db96d56Sopenharmony_ci | | Valid values are: | 1937db96d56Sopenharmony_ci | | | 1947db96d56Sopenharmony_ci | | * text: display text only | 1957db96d56Sopenharmony_ci | | * image: display image only | 1967db96d56Sopenharmony_ci | | * top, bottom, left, right: display image above, below, | 1977db96d56Sopenharmony_ci | | left of, or right of the text, respectively. | 1987db96d56Sopenharmony_ci | | * none: the default. display the image if present, | 1997db96d56Sopenharmony_ci | | otherwise the text. | 2007db96d56Sopenharmony_ci +--------------+-----------------------------------------------------------+ 2017db96d56Sopenharmony_ci | width | If greater than zero, specifies how much space, in | 2027db96d56Sopenharmony_ci | | character widths, to allocate for the text label, if less | 2037db96d56Sopenharmony_ci | | than zero, specifies a minimum width. If zero or | 2047db96d56Sopenharmony_ci | | unspecified, the natural width of the text label is used. | 2057db96d56Sopenharmony_ci +--------------+-----------------------------------------------------------+ 2067db96d56Sopenharmony_ci 2077db96d56Sopenharmony_ci 2087db96d56Sopenharmony_ciCompatibility Options 2097db96d56Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^ 2107db96d56Sopenharmony_ci 2117db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 2127db96d56Sopenharmony_ci 2137db96d56Sopenharmony_ci +--------+----------------------------------------------------------------+ 2147db96d56Sopenharmony_ci | Option | Description | 2157db96d56Sopenharmony_ci +========+================================================================+ 2167db96d56Sopenharmony_ci | state | May be set to "normal" or "disabled" to control the "disabled" | 2177db96d56Sopenharmony_ci | | state bit. This is a write-only option: setting it changes the | 2187db96d56Sopenharmony_ci | | widget state, but the :meth:`Widget.state` method does not | 2197db96d56Sopenharmony_ci | | affect this option. | 2207db96d56Sopenharmony_ci +--------+----------------------------------------------------------------+ 2217db96d56Sopenharmony_ci 2227db96d56Sopenharmony_ciWidget States 2237db96d56Sopenharmony_ci^^^^^^^^^^^^^ 2247db96d56Sopenharmony_ci 2257db96d56Sopenharmony_ciThe widget state is a bitmap of independent state flags. 2267db96d56Sopenharmony_ci 2277db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 2287db96d56Sopenharmony_ci 2297db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2307db96d56Sopenharmony_ci | Flag | Description | 2317db96d56Sopenharmony_ci +============+=============================================================+ 2327db96d56Sopenharmony_ci | active | The mouse cursor is over the widget and pressing a mouse | 2337db96d56Sopenharmony_ci | | button will cause some action to occur | 2347db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2357db96d56Sopenharmony_ci | disabled | Widget is disabled under program control | 2367db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2377db96d56Sopenharmony_ci | focus | Widget has keyboard focus | 2387db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2397db96d56Sopenharmony_ci | pressed | Widget is being pressed | 2407db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2417db96d56Sopenharmony_ci | selected | "On", "true", or "current" for things like Checkbuttons and | 2427db96d56Sopenharmony_ci | | radiobuttons | 2437db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2447db96d56Sopenharmony_ci | background | Windows and Mac have a notion of an "active" or foreground | 2457db96d56Sopenharmony_ci | | window. The *background* state is set for widgets in a | 2467db96d56Sopenharmony_ci | | background window, and cleared for those in the foreground | 2477db96d56Sopenharmony_ci | | window | 2487db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2497db96d56Sopenharmony_ci | readonly | Widget should not allow user modification | 2507db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2517db96d56Sopenharmony_ci | alternate | A widget-specific alternate display format | 2527db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2537db96d56Sopenharmony_ci | invalid | The widget's value is invalid | 2547db96d56Sopenharmony_ci +------------+-------------------------------------------------------------+ 2557db96d56Sopenharmony_ci 2567db96d56Sopenharmony_ciA state specification is a sequence of state names, optionally prefixed with 2577db96d56Sopenharmony_cian exclamation point indicating that the bit is off. 2587db96d56Sopenharmony_ci 2597db96d56Sopenharmony_ci 2607db96d56Sopenharmony_cittk.Widget 2617db96d56Sopenharmony_ci^^^^^^^^^^ 2627db96d56Sopenharmony_ci 2637db96d56Sopenharmony_ciBesides the methods described below, the :class:`ttk.Widget` supports the 2647db96d56Sopenharmony_cimethods :meth:`tkinter.Widget.cget` and :meth:`tkinter.Widget.configure`. 2657db96d56Sopenharmony_ci 2667db96d56Sopenharmony_ci.. class:: Widget 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ci .. method:: identify(x, y) 2697db96d56Sopenharmony_ci 2707db96d56Sopenharmony_ci Returns the name of the element at position *x* *y*, or the empty string 2717db96d56Sopenharmony_ci if the point does not lie within any element. 2727db96d56Sopenharmony_ci 2737db96d56Sopenharmony_ci *x* and *y* are pixel coordinates relative to the widget. 2747db96d56Sopenharmony_ci 2757db96d56Sopenharmony_ci 2767db96d56Sopenharmony_ci .. method:: instate(statespec, callback=None, *args, **kw) 2777db96d56Sopenharmony_ci 2787db96d56Sopenharmony_ci Test the widget's state. If a callback is not specified, returns ``True`` 2797db96d56Sopenharmony_ci if the widget state matches *statespec* and ``False`` otherwise. If callback 2807db96d56Sopenharmony_ci is specified then it is called with args if widget state matches 2817db96d56Sopenharmony_ci *statespec*. 2827db96d56Sopenharmony_ci 2837db96d56Sopenharmony_ci 2847db96d56Sopenharmony_ci .. method:: state(statespec=None) 2857db96d56Sopenharmony_ci 2867db96d56Sopenharmony_ci Modify or inquire widget state. If *statespec* is specified, sets the 2877db96d56Sopenharmony_ci widget state according to it and return a new *statespec* indicating 2887db96d56Sopenharmony_ci which flags were changed. If *statespec* is not specified, returns 2897db96d56Sopenharmony_ci the currently enabled state flags. 2907db96d56Sopenharmony_ci 2917db96d56Sopenharmony_ci *statespec* will usually be a list or a tuple. 2927db96d56Sopenharmony_ci 2937db96d56Sopenharmony_ci 2947db96d56Sopenharmony_ciCombobox 2957db96d56Sopenharmony_ci-------- 2967db96d56Sopenharmony_ci 2977db96d56Sopenharmony_ciThe :class:`ttk.Combobox` widget combines a text field with a pop-down list of 2987db96d56Sopenharmony_civalues. This widget is a subclass of :class:`Entry`. 2997db96d56Sopenharmony_ci 3007db96d56Sopenharmony_ciBesides the methods inherited from :class:`Widget`: :meth:`Widget.cget`, 3017db96d56Sopenharmony_ci:meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` 3027db96d56Sopenharmony_ciand :meth:`Widget.state`, and the following inherited from :class:`Entry`: 3037db96d56Sopenharmony_ci:meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, 3047db96d56Sopenharmony_ci:meth:`Entry.index`, :meth:`Entry.insert`, :meth:`Entry.selection`, 3057db96d56Sopenharmony_ci:meth:`Entry.xview`, it has some other methods, described at 3067db96d56Sopenharmony_ci:class:`ttk.Combobox`. 3077db96d56Sopenharmony_ci 3087db96d56Sopenharmony_ci 3097db96d56Sopenharmony_ciOptions 3107db96d56Sopenharmony_ci^^^^^^^ 3117db96d56Sopenharmony_ci 3127db96d56Sopenharmony_ciThis widget accepts the following specific options: 3137db96d56Sopenharmony_ci 3147db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 3157db96d56Sopenharmony_ci 3167db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3177db96d56Sopenharmony_ci | Option | Description | 3187db96d56Sopenharmony_ci +=================+========================================================+ 3197db96d56Sopenharmony_ci | exportselection | Boolean value. If set, the widget selection is linked | 3207db96d56Sopenharmony_ci | | to the Window Manager selection (which can be returned | 3217db96d56Sopenharmony_ci | | by invoking Misc.selection_get, for example). | 3227db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3237db96d56Sopenharmony_ci | justify | Specifies how the text is aligned within the widget. | 3247db96d56Sopenharmony_ci | | One of "left", "center", or "right". | 3257db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3267db96d56Sopenharmony_ci | height | Specifies the height of the pop-down listbox, in rows. | 3277db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3287db96d56Sopenharmony_ci | postcommand | A script (possibly registered with Misc.register) that | 3297db96d56Sopenharmony_ci | | is called immediately before displaying the values. It | 3307db96d56Sopenharmony_ci | | may specify which values to display. | 3317db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3327db96d56Sopenharmony_ci | state | One of "normal", "readonly", or "disabled". In the | 3337db96d56Sopenharmony_ci | | "readonly" state, the value may not be edited directly,| 3347db96d56Sopenharmony_ci | | and the user can only selection of the values from the | 3357db96d56Sopenharmony_ci | | dropdown list. In the "normal" state, the text field is| 3367db96d56Sopenharmony_ci | | directly editable. In the "disabled" state, no | 3377db96d56Sopenharmony_ci | | interaction is possible. | 3387db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3397db96d56Sopenharmony_ci | textvariable | Specifies a name whose value is linked to the widget | 3407db96d56Sopenharmony_ci | | value. Whenever the value associated with that name | 3417db96d56Sopenharmony_ci | | changes, the widget value is updated, and vice versa. | 3427db96d56Sopenharmony_ci | | See :class:`tkinter.StringVar`. | 3437db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3447db96d56Sopenharmony_ci | values | Specifies the list of values to display in the | 3457db96d56Sopenharmony_ci | | drop-down listbox. | 3467db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3477db96d56Sopenharmony_ci | width | Specifies an integer value indicating the desired width| 3487db96d56Sopenharmony_ci | | of the entry window, in average-size characters of the | 3497db96d56Sopenharmony_ci | | widget's font. | 3507db96d56Sopenharmony_ci +-----------------+--------------------------------------------------------+ 3517db96d56Sopenharmony_ci 3527db96d56Sopenharmony_ci 3537db96d56Sopenharmony_ciVirtual events 3547db96d56Sopenharmony_ci^^^^^^^^^^^^^^ 3557db96d56Sopenharmony_ci 3567db96d56Sopenharmony_ciThe combobox widgets generates a **<<ComboboxSelected>>** virtual event 3577db96d56Sopenharmony_ciwhen the user selects an element from the list of values. 3587db96d56Sopenharmony_ci 3597db96d56Sopenharmony_ci 3607db96d56Sopenharmony_cittk.Combobox 3617db96d56Sopenharmony_ci^^^^^^^^^^^^ 3627db96d56Sopenharmony_ci 3637db96d56Sopenharmony_ci.. class:: Combobox 3647db96d56Sopenharmony_ci 3657db96d56Sopenharmony_ci .. method:: current(newindex=None) 3667db96d56Sopenharmony_ci 3677db96d56Sopenharmony_ci If *newindex* is specified, sets the combobox value to the element 3687db96d56Sopenharmony_ci position *newindex*. Otherwise, returns the index of the current value or 3697db96d56Sopenharmony_ci -1 if the current value is not in the values list. 3707db96d56Sopenharmony_ci 3717db96d56Sopenharmony_ci 3727db96d56Sopenharmony_ci .. method:: get() 3737db96d56Sopenharmony_ci 3747db96d56Sopenharmony_ci Returns the current value of the combobox. 3757db96d56Sopenharmony_ci 3767db96d56Sopenharmony_ci 3777db96d56Sopenharmony_ci .. method:: set(value) 3787db96d56Sopenharmony_ci 3797db96d56Sopenharmony_ci Sets the value of the combobox to *value*. 3807db96d56Sopenharmony_ci 3817db96d56Sopenharmony_ci 3827db96d56Sopenharmony_ciSpinbox 3837db96d56Sopenharmony_ci------- 3847db96d56Sopenharmony_ciThe :class:`ttk.Spinbox` widget is a :class:`ttk.Entry` enhanced with increment 3857db96d56Sopenharmony_ciand decrement arrows. It can be used for numbers or lists of string values. 3867db96d56Sopenharmony_ciThis widget is a subclass of :class:`Entry`. 3877db96d56Sopenharmony_ci 3887db96d56Sopenharmony_ciBesides the methods inherited from :class:`Widget`: :meth:`Widget.cget`, 3897db96d56Sopenharmony_ci:meth:`Widget.configure`, :meth:`Widget.identify`, :meth:`Widget.instate` 3907db96d56Sopenharmony_ciand :meth:`Widget.state`, and the following inherited from :class:`Entry`: 3917db96d56Sopenharmony_ci:meth:`Entry.bbox`, :meth:`Entry.delete`, :meth:`Entry.icursor`, 3927db96d56Sopenharmony_ci:meth:`Entry.index`, :meth:`Entry.insert`, :meth:`Entry.xview`, 3937db96d56Sopenharmony_ciit has some other methods, described at :class:`ttk.Spinbox`. 3947db96d56Sopenharmony_ci 3957db96d56Sopenharmony_ciOptions 3967db96d56Sopenharmony_ci^^^^^^^ 3977db96d56Sopenharmony_ci 3987db96d56Sopenharmony_ciThis widget accepts the following specific options: 3997db96d56Sopenharmony_ci 4007db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 4017db96d56Sopenharmony_ci 4027db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4037db96d56Sopenharmony_ci| Option | Description | 4047db96d56Sopenharmony_ci+======================+======================================================+ 4057db96d56Sopenharmony_ci| from | Float value. If set, this is the minimum value to | 4067db96d56Sopenharmony_ci| | which the decrement button will decrement. Must be | 4077db96d56Sopenharmony_ci| | spelled as ``from_`` when used as an argument, since | 4087db96d56Sopenharmony_ci| | ``from`` is a Python keyword. | 4097db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4107db96d56Sopenharmony_ci| to | Float value. If set, this is the maximum value to | 4117db96d56Sopenharmony_ci| | which the increment button will increment. | 4127db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4137db96d56Sopenharmony_ci| increment | Float value. Specifies the amount which the | 4147db96d56Sopenharmony_ci| | increment/decrement buttons change the | 4157db96d56Sopenharmony_ci| | value. Defaults to 1.0. | 4167db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4177db96d56Sopenharmony_ci| values | Sequence of string or float values. If specified, | 4187db96d56Sopenharmony_ci| | the increment/decrement buttons will cycle through | 4197db96d56Sopenharmony_ci| | the items in this sequence rather than incrementing | 4207db96d56Sopenharmony_ci| | or decrementing numbers. | 4217db96d56Sopenharmony_ci| | | 4227db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4237db96d56Sopenharmony_ci| wrap | Boolean value. If ``True``, increment and decrement | 4247db96d56Sopenharmony_ci| | buttons will cycle from the ``to`` value to the | 4257db96d56Sopenharmony_ci| | ``from`` value or the ``from`` value to the ``to`` | 4267db96d56Sopenharmony_ci| | value, respectively. | 4277db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4287db96d56Sopenharmony_ci| format | String value. This specifies the format of numbers | 4297db96d56Sopenharmony_ci| | set by the increment/decrement buttons. It must be | 4307db96d56Sopenharmony_ci| | in the form "%W.Pf", where W is the padded width of | 4317db96d56Sopenharmony_ci| | the value, P is the precision, and '%' and 'f' are | 4327db96d56Sopenharmony_ci| | literal. | 4337db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4347db96d56Sopenharmony_ci| command | Python callable. Will be called with no arguments | 4357db96d56Sopenharmony_ci| | whenever either of the increment or decrement buttons| 4367db96d56Sopenharmony_ci| | are pressed. | 4377db96d56Sopenharmony_ci| | | 4387db96d56Sopenharmony_ci+----------------------+------------------------------------------------------+ 4397db96d56Sopenharmony_ci 4407db96d56Sopenharmony_ci 4417db96d56Sopenharmony_ciVirtual events 4427db96d56Sopenharmony_ci^^^^^^^^^^^^^^ 4437db96d56Sopenharmony_ci 4447db96d56Sopenharmony_ciThe spinbox widget generates an **<<Increment>>** virtual event when the 4457db96d56Sopenharmony_ciuser presses <Up>, and a **<<Decrement>>** virtual event when the user 4467db96d56Sopenharmony_cipresses <Down>. 4477db96d56Sopenharmony_ci 4487db96d56Sopenharmony_cittk.Spinbox 4497db96d56Sopenharmony_ci^^^^^^^^^^^^ 4507db96d56Sopenharmony_ci 4517db96d56Sopenharmony_ci.. class:: Spinbox 4527db96d56Sopenharmony_ci 4537db96d56Sopenharmony_ci .. method:: get() 4547db96d56Sopenharmony_ci 4557db96d56Sopenharmony_ci Returns the current value of the spinbox. 4567db96d56Sopenharmony_ci 4577db96d56Sopenharmony_ci 4587db96d56Sopenharmony_ci .. method:: set(value) 4597db96d56Sopenharmony_ci 4607db96d56Sopenharmony_ci Sets the value of the spinbox to *value*. 4617db96d56Sopenharmony_ci 4627db96d56Sopenharmony_ci 4637db96d56Sopenharmony_ciNotebook 4647db96d56Sopenharmony_ci-------- 4657db96d56Sopenharmony_ci 4667db96d56Sopenharmony_ciTtk Notebook widget manages a collection of windows and displays a single 4677db96d56Sopenharmony_cione at a time. Each child window is associated with a tab, which the user 4687db96d56Sopenharmony_cimay select to change the currently displayed window. 4697db96d56Sopenharmony_ci 4707db96d56Sopenharmony_ci 4717db96d56Sopenharmony_ciOptions 4727db96d56Sopenharmony_ci^^^^^^^ 4737db96d56Sopenharmony_ci 4747db96d56Sopenharmony_ciThis widget accepts the following specific options: 4757db96d56Sopenharmony_ci 4767db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 4777db96d56Sopenharmony_ci 4787db96d56Sopenharmony_ci +---------+----------------------------------------------------------------+ 4797db96d56Sopenharmony_ci | Option | Description | 4807db96d56Sopenharmony_ci +=========+================================================================+ 4817db96d56Sopenharmony_ci | height | If present and greater than zero, specifies the desired height | 4827db96d56Sopenharmony_ci | | of the pane area (not including internal padding or tabs). | 4837db96d56Sopenharmony_ci | | Otherwise, the maximum height of all panes is used. | 4847db96d56Sopenharmony_ci +---------+----------------------------------------------------------------+ 4857db96d56Sopenharmony_ci | padding | Specifies the amount of extra space to add around the outside | 4867db96d56Sopenharmony_ci | | of the notebook. The padding is a list up to four length | 4877db96d56Sopenharmony_ci | | specifications left top right bottom. If fewer than four | 4887db96d56Sopenharmony_ci | | elements are specified, bottom defaults to top, right defaults | 4897db96d56Sopenharmony_ci | | to left, and top defaults to left. | 4907db96d56Sopenharmony_ci +---------+----------------------------------------------------------------+ 4917db96d56Sopenharmony_ci | width | If present and greater than zero, specified the desired width | 4927db96d56Sopenharmony_ci | | of the pane area (not including internal padding). Otherwise, | 4937db96d56Sopenharmony_ci | | the maximum width of all panes is used. | 4947db96d56Sopenharmony_ci +---------+----------------------------------------------------------------+ 4957db96d56Sopenharmony_ci 4967db96d56Sopenharmony_ci 4977db96d56Sopenharmony_ciTab Options 4987db96d56Sopenharmony_ci^^^^^^^^^^^ 4997db96d56Sopenharmony_ci 5007db96d56Sopenharmony_ciThere are also specific options for tabs: 5017db96d56Sopenharmony_ci 5027db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 5037db96d56Sopenharmony_ci 5047db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5057db96d56Sopenharmony_ci | Option | Description | 5067db96d56Sopenharmony_ci +===========+==============================================================+ 5077db96d56Sopenharmony_ci | state | Either "normal", "disabled" or "hidden". If "disabled", then | 5087db96d56Sopenharmony_ci | | the tab is not selectable. If "hidden", then the tab is not | 5097db96d56Sopenharmony_ci | | shown. | 5107db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5117db96d56Sopenharmony_ci | sticky | Specifies how the child window is positioned within the pane | 5127db96d56Sopenharmony_ci | | area. Value is a string containing zero or more of the | 5137db96d56Sopenharmony_ci | | characters "n", "s", "e" or "w". Each letter refers to a | 5147db96d56Sopenharmony_ci | | side (north, south, east or west) that the child window will | 5157db96d56Sopenharmony_ci | | stick to, as per the :meth:`grid` geometry manager. | 5167db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5177db96d56Sopenharmony_ci | padding | Specifies the amount of extra space to add between the | 5187db96d56Sopenharmony_ci | | notebook and this pane. Syntax is the same as for the option | 5197db96d56Sopenharmony_ci | | padding used by this widget. | 5207db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5217db96d56Sopenharmony_ci | text | Specifies a text to be displayed in the tab. | 5227db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5237db96d56Sopenharmony_ci | image | Specifies an image to display in the tab. See the option | 5247db96d56Sopenharmony_ci | | image described in :class:`Widget`. | 5257db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5267db96d56Sopenharmony_ci | compound | Specifies how to display the image relative to the text, in | 5277db96d56Sopenharmony_ci | | the case both options text and image are present. See | 5287db96d56Sopenharmony_ci | | `Label Options`_ for legal values. | 5297db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5307db96d56Sopenharmony_ci | underline | Specifies the index (0-based) of a character to underline in | 5317db96d56Sopenharmony_ci | | the text string. The underlined character is used for | 5327db96d56Sopenharmony_ci | | mnemonic activation if :meth:`Notebook.enable_traversal` is | 5337db96d56Sopenharmony_ci | | called. | 5347db96d56Sopenharmony_ci +-----------+--------------------------------------------------------------+ 5357db96d56Sopenharmony_ci 5367db96d56Sopenharmony_ci 5377db96d56Sopenharmony_ciTab Identifiers 5387db96d56Sopenharmony_ci^^^^^^^^^^^^^^^ 5397db96d56Sopenharmony_ci 5407db96d56Sopenharmony_ciThe tab_id present in several methods of :class:`ttk.Notebook` may take any 5417db96d56Sopenharmony_ciof the following forms: 5427db96d56Sopenharmony_ci 5437db96d56Sopenharmony_ci* An integer between zero and the number of tabs 5447db96d56Sopenharmony_ci* The name of a child window 5457db96d56Sopenharmony_ci* A positional specification of the form "@x,y", which identifies the tab 5467db96d56Sopenharmony_ci* The literal string "current", which identifies the currently selected tab 5477db96d56Sopenharmony_ci* The literal string "end", which returns the number of tabs (only valid for 5487db96d56Sopenharmony_ci :meth:`Notebook.index`) 5497db96d56Sopenharmony_ci 5507db96d56Sopenharmony_ci 5517db96d56Sopenharmony_ciVirtual Events 5527db96d56Sopenharmony_ci^^^^^^^^^^^^^^ 5537db96d56Sopenharmony_ci 5547db96d56Sopenharmony_ciThis widget generates a **<<NotebookTabChanged>>** virtual event after a new 5557db96d56Sopenharmony_citab is selected. 5567db96d56Sopenharmony_ci 5577db96d56Sopenharmony_ci 5587db96d56Sopenharmony_cittk.Notebook 5597db96d56Sopenharmony_ci^^^^^^^^^^^^ 5607db96d56Sopenharmony_ci 5617db96d56Sopenharmony_ci.. class:: Notebook 5627db96d56Sopenharmony_ci 5637db96d56Sopenharmony_ci .. method:: add(child, **kw) 5647db96d56Sopenharmony_ci 5657db96d56Sopenharmony_ci Adds a new tab to the notebook. 5667db96d56Sopenharmony_ci 5677db96d56Sopenharmony_ci If window is currently managed by the notebook but hidden, it is 5687db96d56Sopenharmony_ci restored to its previous position. 5697db96d56Sopenharmony_ci 5707db96d56Sopenharmony_ci See `Tab Options`_ for the list of available options. 5717db96d56Sopenharmony_ci 5727db96d56Sopenharmony_ci 5737db96d56Sopenharmony_ci .. method:: forget(tab_id) 5747db96d56Sopenharmony_ci 5757db96d56Sopenharmony_ci Removes the tab specified by *tab_id*, unmaps and unmanages the 5767db96d56Sopenharmony_ci associated window. 5777db96d56Sopenharmony_ci 5787db96d56Sopenharmony_ci 5797db96d56Sopenharmony_ci .. method:: hide(tab_id) 5807db96d56Sopenharmony_ci 5817db96d56Sopenharmony_ci Hides the tab specified by *tab_id*. 5827db96d56Sopenharmony_ci 5837db96d56Sopenharmony_ci The tab will not be displayed, but the associated window remains 5847db96d56Sopenharmony_ci managed by the notebook and its configuration remembered. Hidden tabs 5857db96d56Sopenharmony_ci may be restored with the :meth:`add` command. 5867db96d56Sopenharmony_ci 5877db96d56Sopenharmony_ci 5887db96d56Sopenharmony_ci .. method:: identify(x, y) 5897db96d56Sopenharmony_ci 5907db96d56Sopenharmony_ci Returns the name of the tab element at position *x*, *y*, or the empty 5917db96d56Sopenharmony_ci string if none. 5927db96d56Sopenharmony_ci 5937db96d56Sopenharmony_ci 5947db96d56Sopenharmony_ci .. method:: index(tab_id) 5957db96d56Sopenharmony_ci 5967db96d56Sopenharmony_ci Returns the numeric index of the tab specified by *tab_id*, or the total 5977db96d56Sopenharmony_ci number of tabs if *tab_id* is the string "end". 5987db96d56Sopenharmony_ci 5997db96d56Sopenharmony_ci 6007db96d56Sopenharmony_ci .. method:: insert(pos, child, **kw) 6017db96d56Sopenharmony_ci 6027db96d56Sopenharmony_ci Inserts a pane at the specified position. 6037db96d56Sopenharmony_ci 6047db96d56Sopenharmony_ci *pos* is either the string "end", an integer index, or the name of a 6057db96d56Sopenharmony_ci managed child. If *child* is already managed by the notebook, moves it to 6067db96d56Sopenharmony_ci the specified position. 6077db96d56Sopenharmony_ci 6087db96d56Sopenharmony_ci See `Tab Options`_ for the list of available options. 6097db96d56Sopenharmony_ci 6107db96d56Sopenharmony_ci 6117db96d56Sopenharmony_ci .. method:: select(tab_id=None) 6127db96d56Sopenharmony_ci 6137db96d56Sopenharmony_ci Selects the specified *tab_id*. 6147db96d56Sopenharmony_ci 6157db96d56Sopenharmony_ci The associated child window will be displayed, and the 6167db96d56Sopenharmony_ci previously selected window (if different) is unmapped. If *tab_id* is 6177db96d56Sopenharmony_ci omitted, returns the widget name of the currently selected pane. 6187db96d56Sopenharmony_ci 6197db96d56Sopenharmony_ci 6207db96d56Sopenharmony_ci .. method:: tab(tab_id, option=None, **kw) 6217db96d56Sopenharmony_ci 6227db96d56Sopenharmony_ci Query or modify the options of the specific *tab_id*. 6237db96d56Sopenharmony_ci 6247db96d56Sopenharmony_ci If *kw* is not given, returns a dictionary of the tab option values. If 6257db96d56Sopenharmony_ci *option* is specified, returns the value of that *option*. Otherwise, 6267db96d56Sopenharmony_ci sets the options to the corresponding values. 6277db96d56Sopenharmony_ci 6287db96d56Sopenharmony_ci 6297db96d56Sopenharmony_ci .. method:: tabs() 6307db96d56Sopenharmony_ci 6317db96d56Sopenharmony_ci Returns a list of windows managed by the notebook. 6327db96d56Sopenharmony_ci 6337db96d56Sopenharmony_ci 6347db96d56Sopenharmony_ci .. method:: enable_traversal() 6357db96d56Sopenharmony_ci 6367db96d56Sopenharmony_ci Enable keyboard traversal for a toplevel window containing this notebook. 6377db96d56Sopenharmony_ci 6387db96d56Sopenharmony_ci This will extend the bindings for the toplevel window containing the 6397db96d56Sopenharmony_ci notebook as follows: 6407db96d56Sopenharmony_ci 6417db96d56Sopenharmony_ci * :kbd:`Control-Tab`: selects the tab following the currently selected one. 6427db96d56Sopenharmony_ci * :kbd:`Shift-Control-Tab`: selects the tab preceding the currently selected one. 6437db96d56Sopenharmony_ci * :kbd:`Alt-K`: where *K* is the mnemonic (underlined) character of any tab, will 6447db96d56Sopenharmony_ci select that tab. 6457db96d56Sopenharmony_ci 6467db96d56Sopenharmony_ci Multiple notebooks in a single toplevel may be enabled for traversal, 6477db96d56Sopenharmony_ci including nested notebooks. However, notebook traversal only works 6487db96d56Sopenharmony_ci properly if all panes have the notebook they are in as master. 6497db96d56Sopenharmony_ci 6507db96d56Sopenharmony_ci 6517db96d56Sopenharmony_ciProgressbar 6527db96d56Sopenharmony_ci----------- 6537db96d56Sopenharmony_ci 6547db96d56Sopenharmony_ciThe :class:`ttk.Progressbar` widget shows the status of a long-running 6557db96d56Sopenharmony_cioperation. It can operate in two modes: 1) the determinate mode which shows the 6567db96d56Sopenharmony_ciamount completed relative to the total amount of work to be done and 2) the 6577db96d56Sopenharmony_ciindeterminate mode which provides an animated display to let the user know that 6587db96d56Sopenharmony_ciwork is progressing. 6597db96d56Sopenharmony_ci 6607db96d56Sopenharmony_ci 6617db96d56Sopenharmony_ciOptions 6627db96d56Sopenharmony_ci^^^^^^^ 6637db96d56Sopenharmony_ci 6647db96d56Sopenharmony_ciThis widget accepts the following specific options: 6657db96d56Sopenharmony_ci 6667db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 6677db96d56Sopenharmony_ci 6687db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6697db96d56Sopenharmony_ci | Option | Description | 6707db96d56Sopenharmony_ci +==========+===============================================================+ 6717db96d56Sopenharmony_ci | orient | One of "horizontal" or "vertical". Specifies the orientation | 6727db96d56Sopenharmony_ci | | of the progress bar. | 6737db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6747db96d56Sopenharmony_ci | length | Specifies the length of the long axis of the progress bar | 6757db96d56Sopenharmony_ci | | (width if horizontal, height if vertical). | 6767db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6777db96d56Sopenharmony_ci | mode | One of "determinate" or "indeterminate". | 6787db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6797db96d56Sopenharmony_ci | maximum | A number specifying the maximum value. Defaults to 100. | 6807db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6817db96d56Sopenharmony_ci | value | The current value of the progress bar. In "determinate" mode, | 6827db96d56Sopenharmony_ci | | this represents the amount of work completed. In | 6837db96d56Sopenharmony_ci | | "indeterminate" mode, it is interpreted as modulo *maximum*; | 6847db96d56Sopenharmony_ci | | that is, the progress bar completes one "cycle" when its value| 6857db96d56Sopenharmony_ci | | increases by *maximum*. | 6867db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6877db96d56Sopenharmony_ci | variable | A name which is linked to the option value. If specified, the | 6887db96d56Sopenharmony_ci | | value of the progress bar is automatically set to the value of| 6897db96d56Sopenharmony_ci | | this name whenever the latter is modified. | 6907db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6917db96d56Sopenharmony_ci | phase | Read-only option. The widget periodically increments the value| 6927db96d56Sopenharmony_ci | | of this option whenever its value is greater than 0 and, in | 6937db96d56Sopenharmony_ci | | determinate mode, less than maximum. This option may be used | 6947db96d56Sopenharmony_ci | | by the current theme to provide additional animation effects. | 6957db96d56Sopenharmony_ci +----------+---------------------------------------------------------------+ 6967db96d56Sopenharmony_ci 6977db96d56Sopenharmony_ci 6987db96d56Sopenharmony_cittk.Progressbar 6997db96d56Sopenharmony_ci^^^^^^^^^^^^^^^ 7007db96d56Sopenharmony_ci 7017db96d56Sopenharmony_ci.. class:: Progressbar 7027db96d56Sopenharmony_ci 7037db96d56Sopenharmony_ci .. method:: start(interval=None) 7047db96d56Sopenharmony_ci 7057db96d56Sopenharmony_ci Begin autoincrement mode: schedules a recurring timer event that calls 7067db96d56Sopenharmony_ci :meth:`Progressbar.step` every *interval* milliseconds. If omitted, 7077db96d56Sopenharmony_ci *interval* defaults to 50 milliseconds. 7087db96d56Sopenharmony_ci 7097db96d56Sopenharmony_ci 7107db96d56Sopenharmony_ci .. method:: step(amount=None) 7117db96d56Sopenharmony_ci 7127db96d56Sopenharmony_ci Increments the progress bar's value by *amount*. 7137db96d56Sopenharmony_ci 7147db96d56Sopenharmony_ci *amount* defaults to 1.0 if omitted. 7157db96d56Sopenharmony_ci 7167db96d56Sopenharmony_ci 7177db96d56Sopenharmony_ci .. method:: stop() 7187db96d56Sopenharmony_ci 7197db96d56Sopenharmony_ci Stop autoincrement mode: cancels any recurring timer event initiated by 7207db96d56Sopenharmony_ci :meth:`Progressbar.start` for this progress bar. 7217db96d56Sopenharmony_ci 7227db96d56Sopenharmony_ci 7237db96d56Sopenharmony_ciSeparator 7247db96d56Sopenharmony_ci--------- 7257db96d56Sopenharmony_ci 7267db96d56Sopenharmony_ciThe :class:`ttk.Separator` widget displays a horizontal or vertical separator 7277db96d56Sopenharmony_cibar. 7287db96d56Sopenharmony_ci 7297db96d56Sopenharmony_ciIt has no other methods besides the ones inherited from :class:`ttk.Widget`. 7307db96d56Sopenharmony_ci 7317db96d56Sopenharmony_ci 7327db96d56Sopenharmony_ciOptions 7337db96d56Sopenharmony_ci^^^^^^^ 7347db96d56Sopenharmony_ci 7357db96d56Sopenharmony_ciThis widget accepts the following specific option: 7367db96d56Sopenharmony_ci 7377db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 7387db96d56Sopenharmony_ci 7397db96d56Sopenharmony_ci +--------+----------------------------------------------------------------+ 7407db96d56Sopenharmony_ci | Option | Description | 7417db96d56Sopenharmony_ci +========+================================================================+ 7427db96d56Sopenharmony_ci | orient | One of "horizontal" or "vertical". Specifies the orientation of| 7437db96d56Sopenharmony_ci | | the separator. | 7447db96d56Sopenharmony_ci +--------+----------------------------------------------------------------+ 7457db96d56Sopenharmony_ci 7467db96d56Sopenharmony_ci 7477db96d56Sopenharmony_ciSizegrip 7487db96d56Sopenharmony_ci-------- 7497db96d56Sopenharmony_ci 7507db96d56Sopenharmony_ciThe :class:`ttk.Sizegrip` widget (also known as a grow box) allows the user to 7517db96d56Sopenharmony_ciresize the containing toplevel window by pressing and dragging the grip. 7527db96d56Sopenharmony_ci 7537db96d56Sopenharmony_ciThis widget has neither specific options nor specific methods, besides the 7547db96d56Sopenharmony_ciones inherited from :class:`ttk.Widget`. 7557db96d56Sopenharmony_ci 7567db96d56Sopenharmony_ci 7577db96d56Sopenharmony_ciPlatform-specific notes 7587db96d56Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^ 7597db96d56Sopenharmony_ci 7607db96d56Sopenharmony_ci* On macOS, toplevel windows automatically include a built-in size grip 7617db96d56Sopenharmony_ci by default. Adding a :class:`Sizegrip` is harmless, since the built-in 7627db96d56Sopenharmony_ci grip will just mask the widget. 7637db96d56Sopenharmony_ci 7647db96d56Sopenharmony_ci 7657db96d56Sopenharmony_ciBugs 7667db96d56Sopenharmony_ci^^^^ 7677db96d56Sopenharmony_ci 7687db96d56Sopenharmony_ci* If the containing toplevel's position was specified relative to the right 7697db96d56Sopenharmony_ci or bottom of the screen (e.g. ....), the :class:`Sizegrip` widget will 7707db96d56Sopenharmony_ci not resize the window. 7717db96d56Sopenharmony_ci* This widget supports only "southeast" resizing. 7727db96d56Sopenharmony_ci 7737db96d56Sopenharmony_ci 7747db96d56Sopenharmony_ciTreeview 7757db96d56Sopenharmony_ci-------- 7767db96d56Sopenharmony_ci 7777db96d56Sopenharmony_ciThe :class:`ttk.Treeview` widget displays a hierarchical collection of items. 7787db96d56Sopenharmony_ciEach item has a textual label, an optional image, and an optional list of data 7797db96d56Sopenharmony_civalues. The data values are displayed in successive columns after the tree 7807db96d56Sopenharmony_cilabel. 7817db96d56Sopenharmony_ci 7827db96d56Sopenharmony_ciThe order in which data values are displayed may be controlled by setting 7837db96d56Sopenharmony_cithe widget option ``displaycolumns``. The tree widget can also display column 7847db96d56Sopenharmony_ciheadings. Columns may be accessed by number or symbolic names listed in the 7857db96d56Sopenharmony_ciwidget option columns. See `Column Identifiers`_. 7867db96d56Sopenharmony_ci 7877db96d56Sopenharmony_ciEach item is identified by a unique name. The widget will generate item IDs 7887db96d56Sopenharmony_ciif they are not supplied by the caller. There is a distinguished root item, 7897db96d56Sopenharmony_cinamed ``{}``. The root item itself is not displayed; its children appear at the 7907db96d56Sopenharmony_citop level of the hierarchy. 7917db96d56Sopenharmony_ci 7927db96d56Sopenharmony_ciEach item also has a list of tags, which can be used to associate event bindings 7937db96d56Sopenharmony_ciwith individual items and control the appearance of the item. 7947db96d56Sopenharmony_ci 7957db96d56Sopenharmony_ciThe Treeview widget supports horizontal and vertical scrolling, according to 7967db96d56Sopenharmony_cithe options described in `Scrollable Widget Options`_ and the methods 7977db96d56Sopenharmony_ci:meth:`Treeview.xview` and :meth:`Treeview.yview`. 7987db96d56Sopenharmony_ci 7997db96d56Sopenharmony_ci 8007db96d56Sopenharmony_ciOptions 8017db96d56Sopenharmony_ci^^^^^^^ 8027db96d56Sopenharmony_ci 8037db96d56Sopenharmony_ciThis widget accepts the following specific options: 8047db96d56Sopenharmony_ci 8057db96d56Sopenharmony_ci .. tabularcolumns:: |l|p{0.7\linewidth}| 8067db96d56Sopenharmony_ci 8077db96d56Sopenharmony_ci +----------------+--------------------------------------------------------+ 8087db96d56Sopenharmony_ci | Option | Description | 8097db96d56Sopenharmony_ci +================+========================================================+ 8107db96d56Sopenharmony_ci | columns | A list of column identifiers, specifying the number of | 8117db96d56Sopenharmony_ci | | columns and their names. | 8127db96d56Sopenharmony_ci +----------------+--------------------------------------------------------+ 8137db96d56Sopenharmony_ci | displaycolumns | A list of column identifiers (either symbolic or | 8147db96d56Sopenharmony_ci | | integer indices) specifying which data columns are | 8157db96d56Sopenharmony_ci | | displayed and the order in which they appear, or the | 8167db96d56Sopenharmony_ci | | string "#all". | 8177db96d56Sopenharmony_ci +----------------+--------------------------------------------------------+ 8187db96d56Sopenharmony_ci | height | Specifies the number of rows which should be visible. | 8197db96d56Sopenharmony_ci | | Note: the requested width is determined from the sum | 8207db96d56Sopenharmony_ci | | of the column widths. | 8217db96d56Sopenharmony_ci +----------------+--------------------------------------------------------+ 8227db96d56Sopenharmony_ci | padding | Specifies the internal padding for the widget. The | 8237db96d56Sopenharmony_ci | | padding is a list of up to four length specifications. | 8247db96d56Sopenharmony_ci +----------------+--------------------------------------------------------+ 8257db96d56Sopenharmony_ci | selectmode | Controls how the built-in class bindings manage the | 8267db96d56Sopenharmony_ci | | selection. One of "extended", "browse" or "none". | 8277db96d56Sopenharmony_ci | | If set to "extended" (the default), multiple items may | 8287db96d56Sopenharmony_ci | | be selected. If "browse", only a single item will be | 8297db96d56Sopenharmony_ci | | selected at a time. If "none", the selection will not | 8307db96d56Sopenharmony_ci | | be changed. | 8317db96d56Sopenharmony_ci | | | 8327db96d56Sopenharmony_ci | | Note that the application code and tag bindings can set| 8337db96d56Sopenharmony_ci | | the selection however they wish, regardless of the | 8347db96d56Sopenharmony_ci | | value of this option. | 8357db96d56Sopenharmony_ci +----------------+--------------------------------------------------------+ 8367db96d56Sopenharmony_ci | show | A list containing zero or more of the following values,| 8377db96d56Sopenharmony_ci | | specifying which elements of the tree to display. | 8387db96d56Sopenharmony_ci | | | 8397db96d56Sopenharmony_ci | | * tree: display tree labels in column #0. | 8407db96d56Sopenharmony_ci | | * headings: display the heading row. | 8417db96d56Sopenharmony_ci | | | 8427db96d56Sopenharmony_ci | | The default is "tree headings", i.e., show all | 8437db96d56Sopenharmony_ci | | elements. | 8447db96d56Sopenharmony_ci | | | 8457db96d56Sopenharmony_ci | | **Note**: Column #0 always refers to the tree column, | 8467db96d56Sopenharmony_ci | | even if show="tree" is not specified. | 8477db96d56Sopenharmony_ci +----------------+--------------------------------------------------------+ 8487db96d56Sopenharmony_ci 8497db96d56Sopenharmony_ci 8507db96d56Sopenharmony_ciItem Options 8517db96d56Sopenharmony_ci^^^^^^^^^^^^ 8527db96d56Sopenharmony_ci 8537db96d56Sopenharmony_ciThe following item options may be specified for items in the insert and item 8547db96d56Sopenharmony_ciwidget commands. 8557db96d56Sopenharmony_ci 8567db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 8577db96d56Sopenharmony_ci 8587db96d56Sopenharmony_ci +--------+---------------------------------------------------------------+ 8597db96d56Sopenharmony_ci | Option | Description | 8607db96d56Sopenharmony_ci +========+===============================================================+ 8617db96d56Sopenharmony_ci | text | The textual label to display for the item. | 8627db96d56Sopenharmony_ci +--------+---------------------------------------------------------------+ 8637db96d56Sopenharmony_ci | image | A Tk Image, displayed to the left of the label. | 8647db96d56Sopenharmony_ci +--------+---------------------------------------------------------------+ 8657db96d56Sopenharmony_ci | values | The list of values associated with the item. | 8667db96d56Sopenharmony_ci | | | 8677db96d56Sopenharmony_ci | | Each item should have the same number of values as the widget | 8687db96d56Sopenharmony_ci | | option columns. If there are fewer values than columns, the | 8697db96d56Sopenharmony_ci | | remaining values are assumed empty. If there are more values | 8707db96d56Sopenharmony_ci | | than columns, the extra values are ignored. | 8717db96d56Sopenharmony_ci +--------+---------------------------------------------------------------+ 8727db96d56Sopenharmony_ci | open | ``True``/``False`` value indicating whether the item's | 8737db96d56Sopenharmony_ci | | children should be displayed or hidden. | 8747db96d56Sopenharmony_ci +--------+---------------------------------------------------------------+ 8757db96d56Sopenharmony_ci | tags | A list of tags associated with this item. | 8767db96d56Sopenharmony_ci +--------+---------------------------------------------------------------+ 8777db96d56Sopenharmony_ci 8787db96d56Sopenharmony_ci 8797db96d56Sopenharmony_ciTag Options 8807db96d56Sopenharmony_ci^^^^^^^^^^^ 8817db96d56Sopenharmony_ci 8827db96d56Sopenharmony_ciThe following options may be specified on tags: 8837db96d56Sopenharmony_ci 8847db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 8857db96d56Sopenharmony_ci 8867db96d56Sopenharmony_ci +------------+-----------------------------------------------------------+ 8877db96d56Sopenharmony_ci | Option | Description | 8887db96d56Sopenharmony_ci +============+===========================================================+ 8897db96d56Sopenharmony_ci | foreground | Specifies the text foreground color. | 8907db96d56Sopenharmony_ci +------------+-----------------------------------------------------------+ 8917db96d56Sopenharmony_ci | background | Specifies the cell or item background color. | 8927db96d56Sopenharmony_ci +------------+-----------------------------------------------------------+ 8937db96d56Sopenharmony_ci | font | Specifies the font to use when drawing text. | 8947db96d56Sopenharmony_ci +------------+-----------------------------------------------------------+ 8957db96d56Sopenharmony_ci | image | Specifies the item image, in case the item's image option | 8967db96d56Sopenharmony_ci | | is empty. | 8977db96d56Sopenharmony_ci +------------+-----------------------------------------------------------+ 8987db96d56Sopenharmony_ci 8997db96d56Sopenharmony_ci 9007db96d56Sopenharmony_ciColumn Identifiers 9017db96d56Sopenharmony_ci^^^^^^^^^^^^^^^^^^ 9027db96d56Sopenharmony_ci 9037db96d56Sopenharmony_ciColumn identifiers take any of the following forms: 9047db96d56Sopenharmony_ci 9057db96d56Sopenharmony_ci* A symbolic name from the list of columns option. 9067db96d56Sopenharmony_ci* An integer n, specifying the nth data column. 9077db96d56Sopenharmony_ci* A string of the form #n, where n is an integer, specifying the nth display 9087db96d56Sopenharmony_ci column. 9097db96d56Sopenharmony_ci 9107db96d56Sopenharmony_ciNotes: 9117db96d56Sopenharmony_ci 9127db96d56Sopenharmony_ci* Item's option values may be displayed in a different order than the order 9137db96d56Sopenharmony_ci in which they are stored. 9147db96d56Sopenharmony_ci* Column #0 always refers to the tree column, even if show="tree" is not 9157db96d56Sopenharmony_ci specified. 9167db96d56Sopenharmony_ci 9177db96d56Sopenharmony_ciA data column number is an index into an item's option values list; a display 9187db96d56Sopenharmony_cicolumn number is the column number in the tree where the values are displayed. 9197db96d56Sopenharmony_ciTree labels are displayed in column #0. If option displaycolumns is not set, 9207db96d56Sopenharmony_cithen data column n is displayed in column #n+1. Again, **column #0 always 9217db96d56Sopenharmony_cirefers to the tree column**. 9227db96d56Sopenharmony_ci 9237db96d56Sopenharmony_ci 9247db96d56Sopenharmony_ciVirtual Events 9257db96d56Sopenharmony_ci^^^^^^^^^^^^^^ 9267db96d56Sopenharmony_ci 9277db96d56Sopenharmony_ciThe Treeview widget generates the following virtual events. 9287db96d56Sopenharmony_ci 9297db96d56Sopenharmony_ci .. tabularcolumns:: |l|L| 9307db96d56Sopenharmony_ci 9317db96d56Sopenharmony_ci +--------------------+--------------------------------------------------+ 9327db96d56Sopenharmony_ci | Event | Description | 9337db96d56Sopenharmony_ci +====================+==================================================+ 9347db96d56Sopenharmony_ci | <<TreeviewSelect>> | Generated whenever the selection changes. | 9357db96d56Sopenharmony_ci +--------------------+--------------------------------------------------+ 9367db96d56Sopenharmony_ci | <<TreeviewOpen>> | Generated just before settings the focus item to | 9377db96d56Sopenharmony_ci | | open=True. | 9387db96d56Sopenharmony_ci +--------------------+--------------------------------------------------+ 9397db96d56Sopenharmony_ci | <<TreeviewClose>> | Generated just after setting the focus item to | 9407db96d56Sopenharmony_ci | | open=False. | 9417db96d56Sopenharmony_ci +--------------------+--------------------------------------------------+ 9427db96d56Sopenharmony_ci 9437db96d56Sopenharmony_ciThe :meth:`Treeview.focus` and :meth:`Treeview.selection` methods can be used 9447db96d56Sopenharmony_cito determine the affected item or items. 9457db96d56Sopenharmony_ci 9467db96d56Sopenharmony_ci 9477db96d56Sopenharmony_cittk.Treeview 9487db96d56Sopenharmony_ci^^^^^^^^^^^^ 9497db96d56Sopenharmony_ci 9507db96d56Sopenharmony_ci.. class:: Treeview 9517db96d56Sopenharmony_ci 9527db96d56Sopenharmony_ci .. method:: bbox(item, column=None) 9537db96d56Sopenharmony_ci 9547db96d56Sopenharmony_ci Returns the bounding box (relative to the treeview widget's window) of 9557db96d56Sopenharmony_ci the specified *item* in the form (x, y, width, height). 9567db96d56Sopenharmony_ci 9577db96d56Sopenharmony_ci If *column* is specified, returns the bounding box of that cell. If the 9587db96d56Sopenharmony_ci *item* is not visible (i.e., if it is a descendant of a closed item or is 9597db96d56Sopenharmony_ci scrolled offscreen), returns an empty string. 9607db96d56Sopenharmony_ci 9617db96d56Sopenharmony_ci 9627db96d56Sopenharmony_ci .. method:: get_children(item=None) 9637db96d56Sopenharmony_ci 9647db96d56Sopenharmony_ci Returns the list of children belonging to *item*. 9657db96d56Sopenharmony_ci 9667db96d56Sopenharmony_ci If *item* is not specified, returns root children. 9677db96d56Sopenharmony_ci 9687db96d56Sopenharmony_ci 9697db96d56Sopenharmony_ci .. method:: set_children(item, *newchildren) 9707db96d56Sopenharmony_ci 9717db96d56Sopenharmony_ci Replaces *item*'s child with *newchildren*. 9727db96d56Sopenharmony_ci 9737db96d56Sopenharmony_ci Children present in *item* that are not present in *newchildren* are 9747db96d56Sopenharmony_ci detached from the tree. No items in *newchildren* may be an ancestor of 9757db96d56Sopenharmony_ci *item*. Note that not specifying *newchildren* results in detaching 9767db96d56Sopenharmony_ci *item*'s children. 9777db96d56Sopenharmony_ci 9787db96d56Sopenharmony_ci 9797db96d56Sopenharmony_ci .. method:: column(column, option=None, **kw) 9807db96d56Sopenharmony_ci 9817db96d56Sopenharmony_ci Query or modify the options for the specified *column*. 9827db96d56Sopenharmony_ci 9837db96d56Sopenharmony_ci If *kw* is not given, returns a dict of the column option values. If 9847db96d56Sopenharmony_ci *option* is specified then the value for that *option* is returned. 9857db96d56Sopenharmony_ci Otherwise, sets the options to the corresponding values. 9867db96d56Sopenharmony_ci 9877db96d56Sopenharmony_ci The valid options/values are: 9887db96d56Sopenharmony_ci 9897db96d56Sopenharmony_ci * id 9907db96d56Sopenharmony_ci Returns the column name. This is a read-only option. 9917db96d56Sopenharmony_ci * anchor: One of the standard Tk anchor values. 9927db96d56Sopenharmony_ci Specifies how the text in this column should be aligned with respect 9937db96d56Sopenharmony_ci to the cell. 9947db96d56Sopenharmony_ci * minwidth: width 9957db96d56Sopenharmony_ci The minimum width of the column in pixels. The treeview widget will 9967db96d56Sopenharmony_ci not make the column any smaller than specified by this option when 9977db96d56Sopenharmony_ci the widget is resized or the user drags a column. 9987db96d56Sopenharmony_ci * stretch: ``True``/``False`` 9997db96d56Sopenharmony_ci Specifies whether the column's width should be adjusted when 10007db96d56Sopenharmony_ci the widget is resized. 10017db96d56Sopenharmony_ci * width: width 10027db96d56Sopenharmony_ci The width of the column in pixels. 10037db96d56Sopenharmony_ci 10047db96d56Sopenharmony_ci To configure the tree column, call this with column = "#0" 10057db96d56Sopenharmony_ci 10067db96d56Sopenharmony_ci .. method:: delete(*items) 10077db96d56Sopenharmony_ci 10087db96d56Sopenharmony_ci Delete all specified *items* and all their descendants. 10097db96d56Sopenharmony_ci 10107db96d56Sopenharmony_ci The root item may not be deleted. 10117db96d56Sopenharmony_ci 10127db96d56Sopenharmony_ci 10137db96d56Sopenharmony_ci .. method:: detach(*items) 10147db96d56Sopenharmony_ci 10157db96d56Sopenharmony_ci Unlinks all of the specified *items* from the tree. 10167db96d56Sopenharmony_ci 10177db96d56Sopenharmony_ci The items and all of their descendants are still present, and may be 10187db96d56Sopenharmony_ci reinserted at another point in the tree, but will not be displayed. 10197db96d56Sopenharmony_ci 10207db96d56Sopenharmony_ci The root item may not be detached. 10217db96d56Sopenharmony_ci 10227db96d56Sopenharmony_ci 10237db96d56Sopenharmony_ci .. method:: exists(item) 10247db96d56Sopenharmony_ci 10257db96d56Sopenharmony_ci Returns ``True`` if the specified *item* is present in the tree. 10267db96d56Sopenharmony_ci 10277db96d56Sopenharmony_ci 10287db96d56Sopenharmony_ci .. method:: focus(item=None) 10297db96d56Sopenharmony_ci 10307db96d56Sopenharmony_ci If *item* is specified, sets the focus item to *item*. Otherwise, returns 10317db96d56Sopenharmony_ci the current focus item, or '' if there is none. 10327db96d56Sopenharmony_ci 10337db96d56Sopenharmony_ci 10347db96d56Sopenharmony_ci .. method:: heading(column, option=None, **kw) 10357db96d56Sopenharmony_ci 10367db96d56Sopenharmony_ci Query or modify the heading options for the specified *column*. 10377db96d56Sopenharmony_ci 10387db96d56Sopenharmony_ci If *kw* is not given, returns a dict of the heading option values. If 10397db96d56Sopenharmony_ci *option* is specified then the value for that *option* is returned. 10407db96d56Sopenharmony_ci Otherwise, sets the options to the corresponding values. 10417db96d56Sopenharmony_ci 10427db96d56Sopenharmony_ci The valid options/values are: 10437db96d56Sopenharmony_ci 10447db96d56Sopenharmony_ci * text: text 10457db96d56Sopenharmony_ci The text to display in the column heading. 10467db96d56Sopenharmony_ci * image: imageName 10477db96d56Sopenharmony_ci Specifies an image to display to the right of the column heading. 10487db96d56Sopenharmony_ci * anchor: anchor 10497db96d56Sopenharmony_ci Specifies how the heading text should be aligned. One of the standard 10507db96d56Sopenharmony_ci Tk anchor values. 10517db96d56Sopenharmony_ci * command: callback 10527db96d56Sopenharmony_ci A callback to be invoked when the heading label is pressed. 10537db96d56Sopenharmony_ci 10547db96d56Sopenharmony_ci To configure the tree column heading, call this with column = "#0". 10557db96d56Sopenharmony_ci 10567db96d56Sopenharmony_ci 10577db96d56Sopenharmony_ci .. method:: identify(component, x, y) 10587db96d56Sopenharmony_ci 10597db96d56Sopenharmony_ci Returns a description of the specified *component* under the point given 10607db96d56Sopenharmony_ci by *x* and *y*, or the empty string if no such *component* is present at 10617db96d56Sopenharmony_ci that position. 10627db96d56Sopenharmony_ci 10637db96d56Sopenharmony_ci 10647db96d56Sopenharmony_ci .. method:: identify_row(y) 10657db96d56Sopenharmony_ci 10667db96d56Sopenharmony_ci Returns the item ID of the item at position *y*. 10677db96d56Sopenharmony_ci 10687db96d56Sopenharmony_ci 10697db96d56Sopenharmony_ci .. method:: identify_column(x) 10707db96d56Sopenharmony_ci 10717db96d56Sopenharmony_ci Returns the data column identifier of the cell at position *x*. 10727db96d56Sopenharmony_ci 10737db96d56Sopenharmony_ci The tree column has ID #0. 10747db96d56Sopenharmony_ci 10757db96d56Sopenharmony_ci 10767db96d56Sopenharmony_ci .. method:: identify_region(x, y) 10777db96d56Sopenharmony_ci 10787db96d56Sopenharmony_ci Returns one of: 10797db96d56Sopenharmony_ci 10807db96d56Sopenharmony_ci +-----------+--------------------------------------+ 10817db96d56Sopenharmony_ci | region | meaning | 10827db96d56Sopenharmony_ci +===========+======================================+ 10837db96d56Sopenharmony_ci | heading | Tree heading area. | 10847db96d56Sopenharmony_ci +-----------+--------------------------------------+ 10857db96d56Sopenharmony_ci | separator | Space between two columns headings. | 10867db96d56Sopenharmony_ci +-----------+--------------------------------------+ 10877db96d56Sopenharmony_ci | tree | The tree area. | 10887db96d56Sopenharmony_ci +-----------+--------------------------------------+ 10897db96d56Sopenharmony_ci | cell | A data cell. | 10907db96d56Sopenharmony_ci +-----------+--------------------------------------+ 10917db96d56Sopenharmony_ci 10927db96d56Sopenharmony_ci Availability: Tk 8.6. 10937db96d56Sopenharmony_ci 10947db96d56Sopenharmony_ci 10957db96d56Sopenharmony_ci .. method:: identify_element(x, y) 10967db96d56Sopenharmony_ci 10977db96d56Sopenharmony_ci Returns the element at position *x*, *y*. 10987db96d56Sopenharmony_ci 10997db96d56Sopenharmony_ci Availability: Tk 8.6. 11007db96d56Sopenharmony_ci 11017db96d56Sopenharmony_ci 11027db96d56Sopenharmony_ci .. method:: index(item) 11037db96d56Sopenharmony_ci 11047db96d56Sopenharmony_ci Returns the integer index of *item* within its parent's list of children. 11057db96d56Sopenharmony_ci 11067db96d56Sopenharmony_ci 11077db96d56Sopenharmony_ci .. method:: insert(parent, index, iid=None, **kw) 11087db96d56Sopenharmony_ci 11097db96d56Sopenharmony_ci Creates a new item and returns the item identifier of the newly created 11107db96d56Sopenharmony_ci item. 11117db96d56Sopenharmony_ci 11127db96d56Sopenharmony_ci *parent* is the item ID of the parent item, or the empty string to create 11137db96d56Sopenharmony_ci a new top-level item. *index* is an integer, or the value "end", 11147db96d56Sopenharmony_ci specifying where in the list of parent's children to insert the new item. 11157db96d56Sopenharmony_ci If *index* is less than or equal to zero, the new node is inserted at 11167db96d56Sopenharmony_ci the beginning; if *index* is greater than or equal to the current number 11177db96d56Sopenharmony_ci of children, it is inserted at the end. If *iid* is specified, it is used 11187db96d56Sopenharmony_ci as the item identifier; *iid* must not already exist in the tree. 11197db96d56Sopenharmony_ci Otherwise, a new unique identifier is generated. 11207db96d56Sopenharmony_ci 11217db96d56Sopenharmony_ci See `Item Options`_ for the list of available points. 11227db96d56Sopenharmony_ci 11237db96d56Sopenharmony_ci 11247db96d56Sopenharmony_ci .. method:: item(item, option=None, **kw) 11257db96d56Sopenharmony_ci 11267db96d56Sopenharmony_ci Query or modify the options for the specified *item*. 11277db96d56Sopenharmony_ci 11287db96d56Sopenharmony_ci If no options are given, a dict with options/values for the item is 11297db96d56Sopenharmony_ci returned. 11307db96d56Sopenharmony_ci If *option* is specified then the value for that option is returned. 11317db96d56Sopenharmony_ci Otherwise, sets the options to the corresponding values as given by *kw*. 11327db96d56Sopenharmony_ci 11337db96d56Sopenharmony_ci 11347db96d56Sopenharmony_ci .. method:: move(item, parent, index) 11357db96d56Sopenharmony_ci 11367db96d56Sopenharmony_ci Moves *item* to position *index* in *parent*'s list of children. 11377db96d56Sopenharmony_ci 11387db96d56Sopenharmony_ci It is illegal to move an item under one of its descendants. If *index* is 11397db96d56Sopenharmony_ci less than or equal to zero, *item* is moved to the beginning; if greater 11407db96d56Sopenharmony_ci than or equal to the number of children, it is moved to the end. If *item* 11417db96d56Sopenharmony_ci was detached it is reattached. 11427db96d56Sopenharmony_ci 11437db96d56Sopenharmony_ci 11447db96d56Sopenharmony_ci .. method:: next(item) 11457db96d56Sopenharmony_ci 11467db96d56Sopenharmony_ci Returns the identifier of *item*'s next sibling, or '' if *item* is the 11477db96d56Sopenharmony_ci last child of its parent. 11487db96d56Sopenharmony_ci 11497db96d56Sopenharmony_ci 11507db96d56Sopenharmony_ci .. method:: parent(item) 11517db96d56Sopenharmony_ci 11527db96d56Sopenharmony_ci Returns the ID of the parent of *item*, or '' if *item* is at the top 11537db96d56Sopenharmony_ci level of the hierarchy. 11547db96d56Sopenharmony_ci 11557db96d56Sopenharmony_ci 11567db96d56Sopenharmony_ci .. method:: prev(item) 11577db96d56Sopenharmony_ci 11587db96d56Sopenharmony_ci Returns the identifier of *item*'s previous sibling, or '' if *item* is 11597db96d56Sopenharmony_ci the first child of its parent. 11607db96d56Sopenharmony_ci 11617db96d56Sopenharmony_ci 11627db96d56Sopenharmony_ci .. method:: reattach(item, parent, index) 11637db96d56Sopenharmony_ci 11647db96d56Sopenharmony_ci An alias for :meth:`Treeview.move`. 11657db96d56Sopenharmony_ci 11667db96d56Sopenharmony_ci 11677db96d56Sopenharmony_ci .. method:: see(item) 11687db96d56Sopenharmony_ci 11697db96d56Sopenharmony_ci Ensure that *item* is visible. 11707db96d56Sopenharmony_ci 11717db96d56Sopenharmony_ci Sets all of *item*'s ancestors open option to ``True``, and scrolls the 11727db96d56Sopenharmony_ci widget if necessary so that *item* is within the visible portion of 11737db96d56Sopenharmony_ci the tree. 11747db96d56Sopenharmony_ci 11757db96d56Sopenharmony_ci 11767db96d56Sopenharmony_ci .. method:: selection() 11777db96d56Sopenharmony_ci 11787db96d56Sopenharmony_ci Returns a tuple of selected items. 11797db96d56Sopenharmony_ci 11807db96d56Sopenharmony_ci .. versionchanged:: 3.8 11817db96d56Sopenharmony_ci ``selection()`` no longer takes arguments. For changing the selection 11827db96d56Sopenharmony_ci state use the following selection methods. 11837db96d56Sopenharmony_ci 11847db96d56Sopenharmony_ci 11857db96d56Sopenharmony_ci .. method:: selection_set(*items) 11867db96d56Sopenharmony_ci 11877db96d56Sopenharmony_ci *items* becomes the new selection. 11887db96d56Sopenharmony_ci 11897db96d56Sopenharmony_ci .. versionchanged:: 3.6 11907db96d56Sopenharmony_ci *items* can be passed as separate arguments, not just as a single tuple. 11917db96d56Sopenharmony_ci 11927db96d56Sopenharmony_ci 11937db96d56Sopenharmony_ci .. method:: selection_add(*items) 11947db96d56Sopenharmony_ci 11957db96d56Sopenharmony_ci Add *items* to the selection. 11967db96d56Sopenharmony_ci 11977db96d56Sopenharmony_ci .. versionchanged:: 3.6 11987db96d56Sopenharmony_ci *items* can be passed as separate arguments, not just as a single tuple. 11997db96d56Sopenharmony_ci 12007db96d56Sopenharmony_ci 12017db96d56Sopenharmony_ci .. method:: selection_remove(*items) 12027db96d56Sopenharmony_ci 12037db96d56Sopenharmony_ci Remove *items* from the selection. 12047db96d56Sopenharmony_ci 12057db96d56Sopenharmony_ci .. versionchanged:: 3.6 12067db96d56Sopenharmony_ci *items* can be passed as separate arguments, not just as a single tuple. 12077db96d56Sopenharmony_ci 12087db96d56Sopenharmony_ci 12097db96d56Sopenharmony_ci .. method:: selection_toggle(*items) 12107db96d56Sopenharmony_ci 12117db96d56Sopenharmony_ci Toggle the selection state of each item in *items*. 12127db96d56Sopenharmony_ci 12137db96d56Sopenharmony_ci .. versionchanged:: 3.6 12147db96d56Sopenharmony_ci *items* can be passed as separate arguments, not just as a single tuple. 12157db96d56Sopenharmony_ci 12167db96d56Sopenharmony_ci 12177db96d56Sopenharmony_ci .. method:: set(item, column=None, value=None) 12187db96d56Sopenharmony_ci 12197db96d56Sopenharmony_ci With one argument, returns a dictionary of column/value pairs for the 12207db96d56Sopenharmony_ci specified *item*. With two arguments, returns the current value of the 12217db96d56Sopenharmony_ci specified *column*. With three arguments, sets the value of given 12227db96d56Sopenharmony_ci *column* in given *item* to the specified *value*. 12237db96d56Sopenharmony_ci 12247db96d56Sopenharmony_ci 12257db96d56Sopenharmony_ci .. method:: tag_bind(tagname, sequence=None, callback=None) 12267db96d56Sopenharmony_ci 12277db96d56Sopenharmony_ci Bind a callback for the given event *sequence* to the tag *tagname*. 12287db96d56Sopenharmony_ci When an event is delivered to an item, the callbacks for each of the 12297db96d56Sopenharmony_ci item's tags option are called. 12307db96d56Sopenharmony_ci 12317db96d56Sopenharmony_ci 12327db96d56Sopenharmony_ci .. method:: tag_configure(tagname, option=None, **kw) 12337db96d56Sopenharmony_ci 12347db96d56Sopenharmony_ci Query or modify the options for the specified *tagname*. 12357db96d56Sopenharmony_ci 12367db96d56Sopenharmony_ci If *kw* is not given, returns a dict of the option settings for 12377db96d56Sopenharmony_ci *tagname*. If *option* is specified, returns the value for that *option* 12387db96d56Sopenharmony_ci for the specified *tagname*. Otherwise, sets the options to the 12397db96d56Sopenharmony_ci corresponding values for the given *tagname*. 12407db96d56Sopenharmony_ci 12417db96d56Sopenharmony_ci 12427db96d56Sopenharmony_ci .. method:: tag_has(tagname, item=None) 12437db96d56Sopenharmony_ci 12447db96d56Sopenharmony_ci If *item* is specified, returns 1 or 0 depending on whether the specified 12457db96d56Sopenharmony_ci *item* has the given *tagname*. Otherwise, returns a list of all items 12467db96d56Sopenharmony_ci that have the specified tag. 12477db96d56Sopenharmony_ci 12487db96d56Sopenharmony_ci Availability: Tk 8.6 12497db96d56Sopenharmony_ci 12507db96d56Sopenharmony_ci 12517db96d56Sopenharmony_ci .. method:: xview(*args) 12527db96d56Sopenharmony_ci 12537db96d56Sopenharmony_ci Query or modify horizontal position of the treeview. 12547db96d56Sopenharmony_ci 12557db96d56Sopenharmony_ci 12567db96d56Sopenharmony_ci .. method:: yview(*args) 12577db96d56Sopenharmony_ci 12587db96d56Sopenharmony_ci Query or modify vertical position of the treeview. 12597db96d56Sopenharmony_ci 12607db96d56Sopenharmony_ci 12617db96d56Sopenharmony_ci.. _TtkStyling: 12627db96d56Sopenharmony_ci 12637db96d56Sopenharmony_ciTtk Styling 12647db96d56Sopenharmony_ci----------- 12657db96d56Sopenharmony_ci 12667db96d56Sopenharmony_ciEach widget in :mod:`ttk` is assigned a style, which specifies the set of 12677db96d56Sopenharmony_cielements making up the widget and how they are arranged, along with dynamic 12687db96d56Sopenharmony_ciand default settings for element options. By default the style name is the 12697db96d56Sopenharmony_cisame as the widget's class name, but it may be overridden by the widget's style 12707db96d56Sopenharmony_cioption. If you don't know the class name of a widget, use the method 12717db96d56Sopenharmony_ci:meth:`Misc.winfo_class` (somewidget.winfo_class()). 12727db96d56Sopenharmony_ci 12737db96d56Sopenharmony_ci.. seealso:: 12747db96d56Sopenharmony_ci 12757db96d56Sopenharmony_ci `Tcl'2004 conference presentation <https://tktable.sourceforge.net/tile/tile-tcl2004.pdf>`_ 12767db96d56Sopenharmony_ci This document explains how the theme engine works 12777db96d56Sopenharmony_ci 12787db96d56Sopenharmony_ci 12797db96d56Sopenharmony_ci.. class:: Style 12807db96d56Sopenharmony_ci 12817db96d56Sopenharmony_ci This class is used to manipulate the style database. 12827db96d56Sopenharmony_ci 12837db96d56Sopenharmony_ci 12847db96d56Sopenharmony_ci .. method:: configure(style, query_opt=None, **kw) 12857db96d56Sopenharmony_ci 12867db96d56Sopenharmony_ci Query or set the default value of the specified option(s) in *style*. 12877db96d56Sopenharmony_ci 12887db96d56Sopenharmony_ci Each key in *kw* is an option and each value is a string identifying 12897db96d56Sopenharmony_ci the value for that option. 12907db96d56Sopenharmony_ci 12917db96d56Sopenharmony_ci For example, to change every default button to be a flat button with 12927db96d56Sopenharmony_ci some padding and a different background color:: 12937db96d56Sopenharmony_ci 12947db96d56Sopenharmony_ci from tkinter import ttk 12957db96d56Sopenharmony_ci import tkinter 12967db96d56Sopenharmony_ci 12977db96d56Sopenharmony_ci root = tkinter.Tk() 12987db96d56Sopenharmony_ci 12997db96d56Sopenharmony_ci ttk.Style().configure("TButton", padding=6, relief="flat", 13007db96d56Sopenharmony_ci background="#ccc") 13017db96d56Sopenharmony_ci 13027db96d56Sopenharmony_ci btn = ttk.Button(text="Sample") 13037db96d56Sopenharmony_ci btn.pack() 13047db96d56Sopenharmony_ci 13057db96d56Sopenharmony_ci root.mainloop() 13067db96d56Sopenharmony_ci 13077db96d56Sopenharmony_ci 13087db96d56Sopenharmony_ci .. method:: map(style, query_opt=None, **kw) 13097db96d56Sopenharmony_ci 13107db96d56Sopenharmony_ci Query or sets dynamic values of the specified option(s) in *style*. 13117db96d56Sopenharmony_ci 13127db96d56Sopenharmony_ci Each key in *kw* is an option and each value should be a list or a 13137db96d56Sopenharmony_ci tuple (usually) containing statespecs grouped in tuples, lists, or 13147db96d56Sopenharmony_ci some other preference. A statespec is a compound of one 13157db96d56Sopenharmony_ci or more states and then a value. 13167db96d56Sopenharmony_ci 13177db96d56Sopenharmony_ci An example may make it more understandable:: 13187db96d56Sopenharmony_ci 13197db96d56Sopenharmony_ci import tkinter 13207db96d56Sopenharmony_ci from tkinter import ttk 13217db96d56Sopenharmony_ci 13227db96d56Sopenharmony_ci root = tkinter.Tk() 13237db96d56Sopenharmony_ci 13247db96d56Sopenharmony_ci style = ttk.Style() 13257db96d56Sopenharmony_ci style.map("C.TButton", 13267db96d56Sopenharmony_ci foreground=[('pressed', 'red'), ('active', 'blue')], 13277db96d56Sopenharmony_ci background=[('pressed', '!disabled', 'black'), ('active', 'white')] 13287db96d56Sopenharmony_ci ) 13297db96d56Sopenharmony_ci 13307db96d56Sopenharmony_ci colored_btn = ttk.Button(text="Test", style="C.TButton").pack() 13317db96d56Sopenharmony_ci 13327db96d56Sopenharmony_ci root.mainloop() 13337db96d56Sopenharmony_ci 13347db96d56Sopenharmony_ci 13357db96d56Sopenharmony_ci Note that the order of the (states, value) sequences for an option does 13367db96d56Sopenharmony_ci matter, if the order is changed to ``[('active', 'blue'), ('pressed', 13377db96d56Sopenharmony_ci 'red')]`` in the foreground option, for example, the result would be a 13387db96d56Sopenharmony_ci blue foreground when the widget were in active or pressed states. 13397db96d56Sopenharmony_ci 13407db96d56Sopenharmony_ci 13417db96d56Sopenharmony_ci .. method:: lookup(style, option, state=None, default=None) 13427db96d56Sopenharmony_ci 13437db96d56Sopenharmony_ci Returns the value specified for *option* in *style*. 13447db96d56Sopenharmony_ci 13457db96d56Sopenharmony_ci If *state* is specified, it is expected to be a sequence of one or more 13467db96d56Sopenharmony_ci states. If the *default* argument is set, it is used as a fallback value 13477db96d56Sopenharmony_ci in case no specification for option is found. 13487db96d56Sopenharmony_ci 13497db96d56Sopenharmony_ci To check what font a Button uses by default:: 13507db96d56Sopenharmony_ci 13517db96d56Sopenharmony_ci from tkinter import ttk 13527db96d56Sopenharmony_ci 13537db96d56Sopenharmony_ci print(ttk.Style().lookup("TButton", "font")) 13547db96d56Sopenharmony_ci 13557db96d56Sopenharmony_ci 13567db96d56Sopenharmony_ci .. method:: layout(style, layoutspec=None) 13577db96d56Sopenharmony_ci 13587db96d56Sopenharmony_ci Define the widget layout for given *style*. If *layoutspec* is omitted, 13597db96d56Sopenharmony_ci return the layout specification for given style. 13607db96d56Sopenharmony_ci 13617db96d56Sopenharmony_ci *layoutspec*, if specified, is expected to be a list or some other 13627db96d56Sopenharmony_ci sequence type (excluding strings), where each item should be a tuple and 13637db96d56Sopenharmony_ci the first item is the layout name and the second item should have the 13647db96d56Sopenharmony_ci format described in `Layouts`_. 13657db96d56Sopenharmony_ci 13667db96d56Sopenharmony_ci To understand the format, see the following example (it is not 13677db96d56Sopenharmony_ci intended to do anything useful):: 13687db96d56Sopenharmony_ci 13697db96d56Sopenharmony_ci from tkinter import ttk 13707db96d56Sopenharmony_ci import tkinter 13717db96d56Sopenharmony_ci 13727db96d56Sopenharmony_ci root = tkinter.Tk() 13737db96d56Sopenharmony_ci 13747db96d56Sopenharmony_ci style = ttk.Style() 13757db96d56Sopenharmony_ci style.layout("TMenubutton", [ 13767db96d56Sopenharmony_ci ("Menubutton.background", None), 13777db96d56Sopenharmony_ci ("Menubutton.button", {"children": 13787db96d56Sopenharmony_ci [("Menubutton.focus", {"children": 13797db96d56Sopenharmony_ci [("Menubutton.padding", {"children": 13807db96d56Sopenharmony_ci [("Menubutton.label", {"side": "left", "expand": 1})] 13817db96d56Sopenharmony_ci })] 13827db96d56Sopenharmony_ci })] 13837db96d56Sopenharmony_ci }), 13847db96d56Sopenharmony_ci ]) 13857db96d56Sopenharmony_ci 13867db96d56Sopenharmony_ci mbtn = ttk.Menubutton(text='Text') 13877db96d56Sopenharmony_ci mbtn.pack() 13887db96d56Sopenharmony_ci root.mainloop() 13897db96d56Sopenharmony_ci 13907db96d56Sopenharmony_ci 13917db96d56Sopenharmony_ci .. method:: element_create(elementname, etype, *args, **kw) 13927db96d56Sopenharmony_ci 13937db96d56Sopenharmony_ci Create a new element in the current theme, of the given *etype* which is 13947db96d56Sopenharmony_ci expected to be either "image", "from" or "vsapi". The latter is only 13957db96d56Sopenharmony_ci available in Tk 8.6a for Windows XP and Vista and is not described here. 13967db96d56Sopenharmony_ci 13977db96d56Sopenharmony_ci If "image" is used, *args* should contain the default image name followed 13987db96d56Sopenharmony_ci by statespec/value pairs (this is the imagespec), and *kw* may have the 13997db96d56Sopenharmony_ci following options: 14007db96d56Sopenharmony_ci 14017db96d56Sopenharmony_ci * border=padding 14027db96d56Sopenharmony_ci padding is a list of up to four integers, specifying the left, top, 14037db96d56Sopenharmony_ci right, and bottom borders, respectively. 14047db96d56Sopenharmony_ci 14057db96d56Sopenharmony_ci * height=height 14067db96d56Sopenharmony_ci Specifies a minimum height for the element. If less than zero, the 14077db96d56Sopenharmony_ci base image's height is used as a default. 14087db96d56Sopenharmony_ci 14097db96d56Sopenharmony_ci * padding=padding 14107db96d56Sopenharmony_ci Specifies the element's interior padding. Defaults to border's value 14117db96d56Sopenharmony_ci if not specified. 14127db96d56Sopenharmony_ci 14137db96d56Sopenharmony_ci * sticky=spec 14147db96d56Sopenharmony_ci Specifies how the image is placed within the final parcel. spec 14157db96d56Sopenharmony_ci contains zero or more characters "n", "s", "w", or "e". 14167db96d56Sopenharmony_ci 14177db96d56Sopenharmony_ci * width=width 14187db96d56Sopenharmony_ci Specifies a minimum width for the element. If less than zero, the 14197db96d56Sopenharmony_ci base image's width is used as a default. 14207db96d56Sopenharmony_ci 14217db96d56Sopenharmony_ci If "from" is used as the value of *etype*, 14227db96d56Sopenharmony_ci :meth:`element_create` will clone an existing 14237db96d56Sopenharmony_ci element. *args* is expected to contain a themename, from which 14247db96d56Sopenharmony_ci the element will be cloned, and optionally an element to clone from. 14257db96d56Sopenharmony_ci If this element to clone from is not specified, an empty element will 14267db96d56Sopenharmony_ci be used. *kw* is discarded. 14277db96d56Sopenharmony_ci 14287db96d56Sopenharmony_ci 14297db96d56Sopenharmony_ci .. method:: element_names() 14307db96d56Sopenharmony_ci 14317db96d56Sopenharmony_ci Returns the list of elements defined in the current theme. 14327db96d56Sopenharmony_ci 14337db96d56Sopenharmony_ci 14347db96d56Sopenharmony_ci .. method:: element_options(elementname) 14357db96d56Sopenharmony_ci 14367db96d56Sopenharmony_ci Returns the list of *elementname*'s options. 14377db96d56Sopenharmony_ci 14387db96d56Sopenharmony_ci 14397db96d56Sopenharmony_ci .. method:: theme_create(themename, parent=None, settings=None) 14407db96d56Sopenharmony_ci 14417db96d56Sopenharmony_ci Create a new theme. 14427db96d56Sopenharmony_ci 14437db96d56Sopenharmony_ci It is an error if *themename* already exists. If *parent* is specified, 14447db96d56Sopenharmony_ci the new theme will inherit styles, elements and layouts from the parent 14457db96d56Sopenharmony_ci theme. If *settings* are present they are expected to have the same 14467db96d56Sopenharmony_ci syntax used for :meth:`theme_settings`. 14477db96d56Sopenharmony_ci 14487db96d56Sopenharmony_ci 14497db96d56Sopenharmony_ci .. method:: theme_settings(themename, settings) 14507db96d56Sopenharmony_ci 14517db96d56Sopenharmony_ci Temporarily sets the current theme to *themename*, apply specified 14527db96d56Sopenharmony_ci *settings* and then restore the previous theme. 14537db96d56Sopenharmony_ci 14547db96d56Sopenharmony_ci Each key in *settings* is a style and each value may contain the keys 14557db96d56Sopenharmony_ci 'configure', 'map', 'layout' and 'element create' and they are expected 14567db96d56Sopenharmony_ci to have the same format as specified by the methods 14577db96d56Sopenharmony_ci :meth:`Style.configure`, :meth:`Style.map`, :meth:`Style.layout` and 14587db96d56Sopenharmony_ci :meth:`Style.element_create` respectively. 14597db96d56Sopenharmony_ci 14607db96d56Sopenharmony_ci As an example, let's change the Combobox for the default theme a bit:: 14617db96d56Sopenharmony_ci 14627db96d56Sopenharmony_ci from tkinter import ttk 14637db96d56Sopenharmony_ci import tkinter 14647db96d56Sopenharmony_ci 14657db96d56Sopenharmony_ci root = tkinter.Tk() 14667db96d56Sopenharmony_ci 14677db96d56Sopenharmony_ci style = ttk.Style() 14687db96d56Sopenharmony_ci style.theme_settings("default", { 14697db96d56Sopenharmony_ci "TCombobox": { 14707db96d56Sopenharmony_ci "configure": {"padding": 5}, 14717db96d56Sopenharmony_ci "map": { 14727db96d56Sopenharmony_ci "background": [("active", "green2"), 14737db96d56Sopenharmony_ci ("!disabled", "green4")], 14747db96d56Sopenharmony_ci "fieldbackground": [("!disabled", "green3")], 14757db96d56Sopenharmony_ci "foreground": [("focus", "OliveDrab1"), 14767db96d56Sopenharmony_ci ("!disabled", "OliveDrab2")] 14777db96d56Sopenharmony_ci } 14787db96d56Sopenharmony_ci } 14797db96d56Sopenharmony_ci }) 14807db96d56Sopenharmony_ci 14817db96d56Sopenharmony_ci combo = ttk.Combobox().pack() 14827db96d56Sopenharmony_ci 14837db96d56Sopenharmony_ci root.mainloop() 14847db96d56Sopenharmony_ci 14857db96d56Sopenharmony_ci 14867db96d56Sopenharmony_ci .. method:: theme_names() 14877db96d56Sopenharmony_ci 14887db96d56Sopenharmony_ci Returns a list of all known themes. 14897db96d56Sopenharmony_ci 14907db96d56Sopenharmony_ci 14917db96d56Sopenharmony_ci .. method:: theme_use(themename=None) 14927db96d56Sopenharmony_ci 14937db96d56Sopenharmony_ci If *themename* is not given, returns the theme in use. Otherwise, sets 14947db96d56Sopenharmony_ci the current theme to *themename*, refreshes all widgets and emits a 14957db96d56Sopenharmony_ci <<ThemeChanged>> event. 14967db96d56Sopenharmony_ci 14977db96d56Sopenharmony_ci 14987db96d56Sopenharmony_ciLayouts 14997db96d56Sopenharmony_ci^^^^^^^ 15007db96d56Sopenharmony_ci 15017db96d56Sopenharmony_ciA layout can be just ``None``, if it takes no options, or a dict of 15027db96d56Sopenharmony_cioptions specifying how to arrange the element. The layout mechanism 15037db96d56Sopenharmony_ciuses a simplified version of the pack geometry manager: given an 15047db96d56Sopenharmony_ciinitial cavity, each element is allocated a parcel. Valid 15057db96d56Sopenharmony_cioptions/values are: 15067db96d56Sopenharmony_ci 15077db96d56Sopenharmony_ci * side: whichside 15087db96d56Sopenharmony_ci Specifies which side of the cavity to place the element; one of 15097db96d56Sopenharmony_ci top, right, bottom or left. If omitted, the element occupies the 15107db96d56Sopenharmony_ci entire cavity. 15117db96d56Sopenharmony_ci 15127db96d56Sopenharmony_ci * sticky: nswe 15137db96d56Sopenharmony_ci Specifies where the element is placed inside its allocated parcel. 15147db96d56Sopenharmony_ci 15157db96d56Sopenharmony_ci * unit: 0 or 1 15167db96d56Sopenharmony_ci If set to 1, causes the element and all of its descendants to be treated as 15177db96d56Sopenharmony_ci a single element for the purposes of :meth:`Widget.identify` et al. It's 15187db96d56Sopenharmony_ci used for things like scrollbar thumbs with grips. 15197db96d56Sopenharmony_ci 15207db96d56Sopenharmony_ci * children: [sublayout... ] 15217db96d56Sopenharmony_ci Specifies a list of elements to place inside the element. Each 15227db96d56Sopenharmony_ci element is a tuple (or other sequence type) where the first item is 15237db96d56Sopenharmony_ci the layout name, and the other is a `Layout`_. 15247db96d56Sopenharmony_ci 15257db96d56Sopenharmony_ci.. _Layout: `Layouts`_ 1526