fbpx
Wikipedia

Tk (software)

Tk is a cross-platform widget toolkit that provides a library of basic elements of GUI widgets for building a graphical user interface (GUI) in many programming languages. It is free and open-source software released under a BSD-style software license.

Tk
Tcl logo
Tk 8.6.6 on Windows 10
Original author(s)John Ousterhout
Developer(s)Tcl Core Team[1]
Initial release1991; 32 years ago (1991)
Stable release
8.6.13[2]  / 22 November 2022
Repository
  • core.tcl.tk/tk
Written inC
Operating systemCross-platform
PlatformCross-platform
TypeWidget toolkit
LicenseBSD-style[3]
Websitetcl.tk

Tk provides many widgets commonly needed to develop desktop applications, such as button, menu, canvas, text, frame, label, etc. Tk has been ported to run on most flavors of Linux, macOS, Unix, and Microsoft Windows. Like Tcl, Tk supports Unicode within the Basic Multilingual Plane, but it has not yet been extended to handle the current extended full Unicode (e.g., UTF-16 from UCS-2 that Tk supports).

Tk was designed to be extended, and a wide range of extensions are available that offer new widgets or other capabilities.[4][5]

Since Tcl/Tk 8, it offers "native look and feel" (for instance, menus and buttons are displayed in the manner of "native" software for any given platform).[6] Highlights of version 8.5 include a new theming engine, originally called Tk Tile,[7] but it is now generally referred to as "themed Tk", as well as improved font rendering.[8] Highlights of version 8.6 include PNG support and angled text.[9]

History edit

Tk was developed by John Ousterhout as an extension for the Tcl scripting language. It was first publicly released in 1991.[10] Tk versioning was done separately from Tcl until version 8.0.

Tk was written originally for Unix/X11, and proved extremely popular with programmers in the 1990s by virtue of its being easier to learn and use than Motif and other X11 toolkits of the time.[11] Tk was also ported to Microsoft Windows and Macintosh platforms, starting with Tk 4.2 and improved with native look and feel in Tk 8.0 (released 1997). To mark the popularity and significance of Tk in the 1990s, Ousterhout was given the ACM Software System Award in 1997 for Tcl/Tk:[12]

ACM Software System Award Winner: John K Ousterhout

For the Tcl scripting language which allows developers to create complex systems from pre-existing components. The embedded Tk provides a simple mechanism for creating graphical user interfaces. Together they make a powerful addition to the software repertoire.

Interest in Tk waned significantly from the late 1990s and onward. The default look and feel on Unix still emulated Motif, despite the mainstream replacement of Motif by toolkits such as FLTK, Qt, and GTK.[13] Widgets that became commonly used in applications (e.g. trees, combo boxes, tabbed notebooks) were not available in the Tk core, but only via multiple, often competing add-ons.[14]

Tk 8.5, released in late 2007, corrected some of these problems by adding missing widgets to the core, introducing a new theming engine and modernizing the look and feel on Unix.[8] However, because some code changes were required to incorporate these advancements, many existing applications retain the older Motif-inspired feel that Tk had become known for.[15]

Architecture edit

Tk is a platform-independent GUI framework developed for Tcl. From a Tcl shell (tclsh), Tk may be invoked using the command package require Tk. The program wish (WIndowing SHell) provides a way to run a tclsh shell in a graphical window as well as providing Tk.[16]

Tk has the following characteristics:

  • Platform-independent: Like Tcl, Tk is interpreted. It has been ported to multiple platforms and can easily run on all of them without modification.[17]
  • Customizable: Almost all the features of a widget in Tk are customizable through options during the creation of the widget or later on through the configure command.[18]
  • Configurable: Many of the options can be stored in an option database, making it very easy to parameterize the look of an application (such as the color scheme). This also means that storing the application-specific options is only a matter of saving the option add commands and executing them on loading the application.[19]

Language bindings edit

A library written in one programming language may be used in another language if bindings are written; Tk is integrated with the Tcl language. Various other languages have bindings for Tk, a partial list of which is on the Tk website.[20] Bindings exist for additional languages which might not be listed, including Ada (called TASH),[21] Haskell (called HTk),[22] Perl, Python (called Tkinter), R (through the standard package: tcltk), Ruby, Rexx, and Common Lisp.

There are several ways to use Tk from Perl: the Tcl::Tk and Tkx Perl modules,[23] both of which use Tcl as a bridge to access Tk, and Perl/Tk,[24] which provides native Perl access to Tk structures. The Python binding uses Tcl as a bridge to Tk.[25]

Features edit

Tk provides various widgets.[26] Basic widgets are embedded into toplevel widgets, which in turn are usually hosted by the operating system in floating windows that can be moved around on the screen.[27]

Basic widgets edit

  • button
  • canvas
  • checkbutton
  • combobox
  • entry
  • frame
  • label
  • labelframe
  • listbox
  • menu
  • menubutton
  • message
  • notebook
  • panedwindow
  • progressbar
  • radiobutton
  • scale
  • scrollbar
  • separator
  • sizegrip
  • spinbox
  • text
  • tk_optionMenu
  • treeview

Top-level widgets edit

  • tk_chooseColor – pops up a dialog box for the user to select a color.
  • tk_chooseDirectory – pops up a dialog box for the user to select a directory.
  • tk_dialog – creates a modal dialog and waits for a response.
  • tk_getOpenFile – pops up a dialog box for the user to select a file to open.
  • tk_getSaveFile – pops up a dialog box for the user to select a file to save.
  • tk_messageBox – pops up a message window and waits for a user response.
  • tk_popup – posts a popup menu.
  • toplevel – creates and manipulates toplevel widgets.

Geometry managers edit

Basic widgets are arranged in toplevel windows using geometry managers:[28]

  • place – positions widgets at absolute locations
  • grid – arranges widgets in a grid
  • pack – packs widgets into a cavity

See also edit

References edit

  1. ^ "Tcl/Tk Core Development". Tcl Developer Xchange. Retrieved 1 November 2016.
  2. ^ "[TCLCORE] Tcl/Tk 8.6.13 RELEASED".
  3. ^ "Tcl/Tk Licensing Terms". Tcl Developer Xchange. Retrieved 4 November 2016.
  4. ^ Writing a Tk Widget in C, Chapter 46 in Practical Programming in Tcl and Tk, ISBN 0-13-038560-3
  5. ^ "Extensions for Tcl and Tk". Tcler's Wiki. Retrieved 1 November 2016.
  6. ^ "Tcl/Tk 8.0". Tcl Developer Xchange. 18 September 2013. Retrieved 1 July 2014.
  7. ^ "Tile: an improved themeing engine for Tk". SourceForge. Retrieved 4 November 2016.
  8. ^ a b "Tcl/Tk 8.5 Release Announcement". Tcl Developer Xchange. 18 September 2013. Retrieved 1 July 2014.
  9. ^ "Tcl/Tk 8.6 Release Announcement". Tcl Developer Xchange. 20 September 2013. Retrieved 1 July 2014.
  10. ^ Ousterhout, John. "History of Tcl". Tcl Developer Exchange. Retrieved 1 April 2010.
  11. ^ "Tk Backgrounder". TkDocs. Retrieved 4 November 2016.
  12. ^ "John K Ousterhout - Award Winner". ACM Awards. Retrieved 4 November 2016.
  13. ^ "TIP #48: Tk Widget Styling Support". Tcl Developer Xchange. Retrieved 1 November 2016.
  14. ^ "treeview". Tcler's Wiki. Retrieved 1 November 2016.
  15. ^ "TIP #319: Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets". Tcl Developer Xchange. Retrieved 1 November 2016.
  16. ^ "wish manual page - Tk Applications". Tcl Developer Xchange. Retrieved 1 November 2016.
  17. ^ "How to Compile Tcl". Tcl Developer Xchange. Retrieved 1 November 2016.
  18. ^ "ttk::widget manual page - Tk Themed Widget". Tcl Developer Xchange. Retrieved 1 November 2016.
  19. ^ "option manual page - Built-In Commands". Tcl Developer Xchange. Retrieved 1 November 2016.
  20. ^ "Languages with a Tk binding". Tcler's Wiki. Retrieved 1 July 2014.
  21. ^ "TASH". SourceForge. Retrieved 1 July 2014.
  22. ^ "HTk home". Informatik - FB3 - Uni Bremen. Retrieved 4 November 2016.
  23. ^ "Tkx::Tutorial - How to use Tkx". ActiveState Docs. Retrieved 1 November 2016.
  24. ^ Perl/Tk Concepts, Chapter 1 in Mastering Perl/Tk, ISBN 978-1565927162
  25. ^ Tkinter, Chapter 2.4 in Modern Tkinter for Busy Python Developers, ASIN B0071QDNLO
  26. ^ "Tk Commands, version 8.6.6". Tcl Developer Xchange. Retrieved 1 November 2016.
  27. ^ Widgets', Chapter 17.2 in Tcl and the Tk Toolkit , ISBN 978-0321336330
  28. ^ Geometry Managers', Chapter 17.6 in Tcl and the Tk Toolkit , ISBN 978-0321336330

Further reading edit

External links edit

  • Official website
  • Tcler's Wiki
  • Tk docs: modern Tk tutorial for Tcl, Ruby, Perl and Python
  • Tcl-Tk at Curlie
  • Languages with a Tk binding

software, cross, platform, widget, toolkit, that, provides, library, basic, elements, widgets, building, graphical, user, interface, many, programming, languages, free, open, source, software, released, under, style, software, license, tktcl, logotk, windows, . Tk is a cross platform widget toolkit that provides a library of basic elements of GUI widgets for building a graphical user interface GUI in many programming languages It is free and open source software released under a BSD style software license TkTcl logoTk 8 6 6 on Windows 10Original author s John OusterhoutDeveloper s Tcl Core Team 1 Initial release1991 32 years ago 1991 Stable release8 6 13 2 22 November 2022Repositorycore wbr tcl wbr tk wbr tkWritten inCOperating systemCross platformPlatformCross platformTypeWidget toolkitLicenseBSD style 3 Websitetcl tkTk provides many widgets commonly needed to develop desktop applications such as button menu canvas text frame label etc Tk has been ported to run on most flavors of Linux macOS Unix and Microsoft Windows Like Tcl Tk supports Unicode within the Basic Multilingual Plane but it has not yet been extended to handle the current extended full Unicode e g UTF 16 from UCS 2 that Tk supports Tk was designed to be extended and a wide range of extensions are available that offer new widgets or other capabilities 4 5 Since Tcl Tk 8 it offers native look and feel for instance menus and buttons are displayed in the manner of native software for any given platform 6 Highlights of version 8 5 include a new theming engine originally called Tk Tile 7 but it is now generally referred to as themed Tk as well as improved font rendering 8 Highlights of version 8 6 include PNG support and angled text 9 Contents 1 History 2 Architecture 2 1 Language bindings 3 Features 3 1 Basic widgets 3 2 Top level widgets 3 3 Geometry managers 4 See also 5 References 6 Further reading 7 External linksHistory editTk was developed by John Ousterhout as an extension for the Tcl scripting language It was first publicly released in 1991 10 Tk versioning was done separately from Tcl until version 8 0 Tk was written originally for Unix X11 and proved extremely popular with programmers in the 1990s by virtue of its being easier to learn and use than Motif and other X11 toolkits of the time 11 Tk was also ported to Microsoft Windows and Macintosh platforms starting with Tk 4 2 and improved with native look and feel in Tk 8 0 released 1997 To mark the popularity and significance of Tk in the 1990s Ousterhout was given the ACM Software System Award in 1997 for Tcl Tk 12 ACM Software System Award Winner John K Ousterhout For the Tcl scripting language which allows developers to create complex systems from pre existing components The embedded Tk provides a simple mechanism for creating graphical user interfaces Together they make a powerful addition to the software repertoire Interest in Tk waned significantly from the late 1990s and onward The default look and feel on Unix still emulated Motif despite the mainstream replacement of Motif by toolkits such as FLTK Qt and GTK 13 Widgets that became commonly used in applications e g trees combo boxes tabbed notebooks were not available in the Tk core but only via multiple often competing add ons 14 Tk 8 5 released in late 2007 corrected some of these problems by adding missing widgets to the core introducing a new theming engine and modernizing the look and feel on Unix 8 However because some code changes were required to incorporate these advancements many existing applications retain the older Motif inspired feel that Tk had become known for 15 Architecture editTk is a platform independent GUI framework developed for Tcl From a Tcl shell tclsh Tk may be invoked using the command package require Tk The program wish WIndowing SHell provides a way to run a tclsh shell in a graphical window as well as providing Tk 16 Tk has the following characteristics Platform independent Like Tcl Tk is interpreted It has been ported to multiple platforms and can easily run on all of them without modification 17 Customizable Almost all the features of a widget in Tk are customizable through options during the creation of the widget or later on through the configure command 18 Configurable Many of the options can be stored in an option database making it very easy to parameterize the look of an application such as the color scheme This also means that storing the application specific options is only a matter of saving the option add commands and executing them on loading the application 19 Language bindings edit A library written in one programming language may be used in another language if bindings are written Tk is integrated with the Tcl language Various other languages have bindings for Tk a partial list of which is on the Tk website 20 Bindings exist for additional languages which might not be listed including Ada called TASH 21 Haskell called HTk 22 Perl Python called Tkinter R through the standard package tcltk Ruby Rexx and Common Lisp There are several ways to use Tk from Perl the Tcl Tk and Tkx Perl modules 23 both of which use Tcl as a bridge to access Tk and Perl Tk 24 which provides native Perl access to Tk structures The Python binding uses Tcl as a bridge to Tk 25 Features editTk provides various widgets 26 Basic widgets are embedded into toplevel widgets which in turn are usually hosted by the operating system in floating windows that can be moved around on the screen 27 Basic widgets edit button canvas checkbutton combobox entry frame label labelframe listbox menu menubutton message notebook panedwindow progressbar radiobutton scale scrollbar separator sizegrip spinbox text tk optionMenu treeview Top level widgets edit tk chooseColor pops up a dialog box for the user to select a color tk chooseDirectory pops up a dialog box for the user to select a directory tk dialog creates a modal dialog and waits for a response tk getOpenFile pops up a dialog box for the user to select a file to open tk getSaveFile pops up a dialog box for the user to select a file to save tk messageBox pops up a message window and waits for a user response tk popup posts a popup menu toplevel creates and manipulates toplevel widgets Geometry managers edit Basic widgets are arranged in toplevel windows using geometry managers 28 place positions widgets at absolute locations grid arranges widgets in a grid pack packs widgets into a cavitySee also edit nbsp Free and open source software portalList of widget toolkits wish Windowing Shell Expect Tkinter a Tk binding for Python Itk Category Software that uses Tk software References edit Tcl Tk Core Development Tcl Developer Xchange Retrieved 1 November 2016 TCLCORE Tcl Tk 8 6 13 RELEASED Tcl Tk Licensing Terms Tcl Developer Xchange Retrieved 4 November 2016 Writing a Tk Widget in C Chapter 46 in Practical Programming in Tcl and Tk ISBN 0 13 038560 3 Extensions for Tcl and Tk Tcler s Wiki Retrieved 1 November 2016 Tcl Tk 8 0 Tcl Developer Xchange 18 September 2013 Retrieved 1 July 2014 Tile an improved themeing engine for Tk SourceForge Retrieved 4 November 2016 a b Tcl Tk 8 5 Release Announcement Tcl Developer Xchange 18 September 2013 Retrieved 1 July 2014 Tcl Tk 8 6 Release Announcement Tcl Developer Xchange 20 September 2013 Retrieved 1 July 2014 Ousterhout John History of Tcl Tcl Developer Exchange Retrieved 1 April 2010 Tk Backgrounder TkDocs Retrieved 4 November 2016 John K Ousterhout Award Winner ACM Awards Retrieved 4 November 2016 TIP 48 Tk Widget Styling Support Tcl Developer Xchange Retrieved 1 November 2016 treeview Tcler s Wiki Retrieved 1 November 2016 TIP 319 Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets Tcl Developer Xchange Retrieved 1 November 2016 wish manual page Tk Applications Tcl Developer Xchange Retrieved 1 November 2016 How to Compile Tcl Tcl Developer Xchange Retrieved 1 November 2016 ttk widget manual page Tk Themed Widget Tcl Developer Xchange Retrieved 1 November 2016 option manual page Built In Commands Tcl Developer Xchange Retrieved 1 November 2016 Languages with a Tk binding Tcler s Wiki Retrieved 1 July 2014 TASH SourceForge Retrieved 1 July 2014 HTk home Informatik FB3 Uni Bremen Retrieved 4 November 2016 Tkx Tutorial How to use Tkx ActiveState Docs Retrieved 1 November 2016 Perl Tk Concepts Chapter 1 in Mastering Perl Tk ISBN 978 1565927162 Tkinter Chapter 2 4 in Modern Tkinter for Busy Python Developers ASIN B0071QDNLO Tk Commands version 8 6 6 Tcl Developer Xchange Retrieved 1 November 2016 Widgets Chapter 17 2 inTcl and the Tk Toolkit ISBN 978 0321336330 Geometry Managers Chapter 17 6 inTcl and the Tk Toolkit ISBN 978 0321336330Further reading editOusterhout John K Jones Ken 2009 Tcl and the Tk Toolkit 2nd ed Addison Wesley ISBN 978 0 321 33633 0 Retrieved 4 November 2012 Foster Johnson Eric 1997 Graphical Applications with Tcl amp Tk 2nd ed New York N Y M amp T Books ISBN 1 55851 569 0 Retrieved 4 November 2012 Brent B Welch Practical Programming in Tcl and Tk Prentice Hall Upper Saddle River NJ USA ISBN 0 13 038560 3 2003 J Adrian Zimmer Tcl Tk for Programmers IEEE Computer Society distributed by John Wiley and Sons ISBN 0 8186 8515 8 1998 Mark Harrison and Michael McLennan Effective Tcl Tk Programming Addison Wesley Reading MA USA ISBN 0 201 63474 0 1998 Bert Wheeler Tcl Tk 8 5 Programming Cookbook Packt Publishing Birmingham England UK ISBN 1849512981 2011 Clif Flynt Tcl Tk Third Edition A Developer s Guide ISBN 0123847176 2012External links edit nbsp Wikibooks has a book on the topic of Tcl Programming Tk Official website Tcler s Wiki Tk 8 6 Manual Tk docs modern Tk tutorial for Tcl Ruby Perl and Python Tcl Tk at Curlie Languages with a Tk binding Retrieved from https en wikipedia org w index php title Tk software amp oldid 1156830381, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.