tkvars(3tk)
β¨ tkvars(3tk) β¨
okay bestie, welcome to the Tk Built-In Commands manual β this one's tkvars, and it's literally just the β¨master listβ¨ of all the Tcl variables that Tk sets or peeks at while it's doing its thing. π
π NAME π
geometry, tk_library, tk_patchLevel, tk::scalingPct, tk_strictMotif, tk::svgFmt, tk_version β the variables that Tk uses or sets. no cap, that's the whole roster. π
πΈ DESCRIPTION πΈ
So here's the tea: the following Tcl variables are either set or used by Tk at various points while it's running. every single one, coming right up:
tk_libraryβ this one holds the file name of a directory that's got a whole library of Tcl scripts related to Tk in it. those scripts include an initialization file that normally gets processed every time a Tk application starts up, plus other files with procedures that implement the default behaviors for widgets. π«Ά
The initial value of tk_library gets set when Tk is added to an interpreter. how? by searching a bunch of different directories until one is found that contains an appropriate Tk startup script. If the TK_LIBRARY environment variable exists, then the directory it names gets checked first. If TK_LIBRARY isn't set, or it doesn't point at an appropriate directory, then Tk checks several other directories based on: a compiled-in default location, the location of the Tcl library directory, the location of the binary containing the application, and the current working directory.
An application can modify this variable to switch to a different library. slay.
tk_patchLevelβ contains a dot-separated sequence of decimal integers giving the current patch level for Tk. The patch level gets incremented for each new release or patch, and it uniquely identifies an official version of Tk. π
This value is normally the same as the result of package require tk.
tk::scalingPctβ Tk sets this variable at initialization time to the scaling percentage that corresponds to the display's DPI scaling level. This value is at least100and is restricted to multiples of25(100,125,150,175,200,225, ...). The sizes and various attributes of the Tk core and Ttk widgets and their components, as well as the sizes of the images used by Tk, are chosen according to the scaling percentage β and that's recommended for applications and library packages too. β¨
Note that any access to this variable is supposed to be strictly read-only! π Note also that whenever the scaling factor used to convert between physical units and pixels is changed viatk scaling, the value of the variabletk::scalingPctis automatically updated.
On the windowing systems win32 and aqua the scaling percentage is computed by rounding [tk scaling] * 75 to the nearest multiple of 25 that is at least 100. (On aqua the result is always 100, and the desktop engine automatically scales everything as needed.) On x11, deriving the scaling percentage from [tk scaling] is done as a fallback method only, because the implementation of display scaling is highly dependent on the desktop environment and it mostly manipulates system resources that are resident outside of Xlib, which Tk is based on. Moreover, for technical reasons, the value assigned to the variable tk::scalingPct can be different from the one selected in the system settings (e.g., 200 rather than 125, 150, or 175 when running GNOME on Xorg or the Cinnamon desktop). On x11 the scaling percentage is computed mostly (but not exclusively) from the value of the X resource Xft.dpi, and, as an additional step, Tk synchronizes the scaling factor used to convert between physical units and pixels with the scaling percentage, with the aid of the tk scaling command.
tk_strictMotifβ this variable is set to zero by default. If an application sets it to one, then Tk attempts to adhere as closely as possible to Motif look-and-feel standards. For example, active elements such as buttons and scrollbar sliders will not change color when the pointer passes over them. π Modern applications should not normally set this variable.tk::svgFmtβ this variable is set at Tk initialization time to
[list svg -scale [expr {$tk::scalingPct / 100.0}]]
Typical values are {svg -scale 1.0}, {svg -scale 1.25}, {svg -scale 2.0}, etc. It is recommended to pass the value of this variable to the commands image create photo, imageName configure, imageName put, and imageName read as the value of their -format option when creating or manipulating SVG images, to make sure that their sizes will correspond to the display's DPI scaling level. π¦
Note that any access to this variable is supposed to be strictly read-only! π Note also that whenever the scaling factor used to convert between physical units and pixels is changed viatk scaling, the value of the variabletk::svgFmtis automatically updated.
tk_versionβ Tk sets this variable in the interpreter for each application. The variable holds the current version number of the Tk library in the form major.minor. major and minor are integers. The major version number increases in any Tk release that includes changes that are not backward compatible (i.e. whenever existing Tk applications and scripts may have to change to work with the new release). The minor version number increases with each new release of Tk, except that it resets to zero whenever the major version number changes. β
π§ INTERNAL AND DEBUGGING VARIABLES π§
These variables should not normally be set by user code. like, hands off, bestie. π
tk::Privβ this variable is an array containing several pieces of information that are private to Tk. The elements oftk::Privare used by Tk library procedures and default bindings. They should not be accessed by any code outside Tk. πtk_textRedrawtk_textRelayoutβ these variables are set by text widgets when they have debugging turned on. The values written to these variables can be used to test or debug text widget operations. These variables are mostly used by Tk's test suite.
π OTHER GLOBAL VARIABLES π
The following variables are only guaranteed to exist in wish executables; the Tk library does not define them itself but many Tk environments do. iykyk. π
geometryβ if set, contains the user-supplied geometry specification to use for the main Tk window.
π« SEE ALSO π«
package(3tcl), tclvars(3tcl), wish(1)
π₯ KEYWORDS π₯
environment, text, variables, version
and that's the whole vibe check, bestie β this page is from Tk 4.1, and it's tkvars(3tk). go forth and configure your variables responsibly π
β¨π
π¦ where this page comes from
- debian trixie: tk9.0-doc 9.0.1-3
- ubuntu questing: tk9.0-doc 9.0.2-1
- ubuntu resolute: tk9.0-doc 9.0.3-1
- ubuntu stonking: tk9.0-doc 9.0.4-1
- Copyright (c) 1990-1994 The Regents of the University of California
- Copyright (c) 1994-1996 Sun Microsystems, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms