Development edit
- official source code repository
- bug tracker
- sourceforge project page (alternate)
- hosts the histoical source code repository and bug tracker
Description edit
wish is a Tcl shell that is distributed with Tk and extended by the Tk commands. Historically, Tk was usually used via wish, but the modern way is to treat Tk as any other Tcl extension, using package require to load it. For historical information, see using Tk as a loadable package.When wish is used on Windows to run Tk programs, there is no associated Windows console, and output to standard channnels (e.g. using puts) is displayed in in a window provided by Tk called "console".Tk has been adopted by many other languages, including Python and Perl. To this end, most of these other languages also include a full Tcl build, and there is usually some way to access the Tcl interpreter directly. Perl/Tk, on the other hand, rewrote all of Tk in a way that wasn't bound to Tcl, for example. See Tcl and other languages.Tk Package edit
see Tk PackageTk Command edit
tk is also the name of a Tk command. See:http://www.tcl.tk/man/tcl/TkCmd/tk.htm- tk appname ?newName?
- tk busy subcommand ...
- [tk caret] window ?-x x? ?-y y? ?-height height?
- tk inactive ?-displayof window? ?reset?
- tk fontchooser subcommand ...
- tk scaling ?-displayof window? ?number?
- tk useinputmethods ?-displayof window? ?boolean?
- tk windowingsystem
Features edit
- Drag and Drop support
- Tk's copy and paste support
- support for unicode display
- support for multiple monitors
Introductions edit
- An Overview of Tcl and Tk
- An X11 Toolkit Based on the Tcl Language
- the first presentation of Tk, Circa 1991
- Intro to Tk
- describes what Tk is and why it is so unique.
- Building User Interfaces with Tcl and Tk
- Tk Sets The Standard by Cameron Laird and Kathryn Soraiz
Tutorials edit
- online Tcl and Tk tutorials
- Beginning Tk
- Tk resources at the beginning level
- A Tcl(Tutorial for Cool Languages) for Tcl/Tk
- by Binny V A, andin Perl.
- Create Tk Gui from Qt designer forms using ui2tk
- [1]
Documentation edit
- reference manual
- Tk Commands
- Tk syntax help
- basic Tk syntax
- Ttk
- Themed Tk, now part of Tk
- Updated Tcl/Tk Quick Reference Guide
- Paul Raines' reference, updated by Dave Bodenstab.
- Tcl/Tk Quick Reference Guide
- by Paul Raines. Printable.
Instructional Pages edit
- Tk coding styles and philosophies
- best coding practices for Tk
- Tk Sets The Standard by Cameron Laird and Kathryn Soraiz
- User Interface Design for Tcl/Tk
- A nicely-organized guide to instructional pages specifically about the finer points of interface design in Tk.
- Cameron Laird's personal notes on Tk
- CL hints at the advantages Tk interfaces enjoy over both Web applications and traditional Visual Basic form-oriented GUIs. He's published dozens of other articles on various aspects of Tk
- Cross Platform differences in Tcl/Tk
- writing readable, manageable, reusable Tk
- Tips and suggestions for producing quality Tk programs.
- Actions
- An approach to providing behaviours for widgets
Examples edit
- Bag of Tk algorithms
- useful Tk code examples
- Tk examples
- more Tk examples
Programs edit
See also edit
- addinput
- built-in visual elements
- Category Tk Library
- for discussions on various functions in the Tk C APIs.
- Coming to Tcl/Tk from an IDE environment
- GUI Building Tools
- History of Tk
- How Tk compares to other GUI toolkits
- Beginning Tcl
- megawidget
- taming wild windows
- The TK GUI - Q&A
- tktoolkit
- TkDocs: Mark Roseman's
- valuable site focuses on "the latest modern Tk features ...".
- Tk Presentations
- Useful Tk Widgets
- a catalog of widgets
- tkGUIs
- of various applications
Implementations edit
The Tk specification is operationally defined by the reference implementation, and the following projects attempt at least some level of conformity to it.- NexTk, by George Peter Staplin
- intended as a next-generation implementation of Tk
- Tk Widgets in Javascript, by Arnulf Wiedemann
- part of the incr Tcl in Javascript:
Design edit
Tk has an Xlib Emulation Layer XLEL, which is one part in making Tk work across different platforms.That there is such a level is an important reason why Tk generation when X11 headers are missing can be an issue: the Tk source uses X11 headers even when Tk at runtime uses some other windowing system.[double-buffering examples; ...]Discussion edit
RS 2013-10-08: I just spent some time debugging an app where, mysteriously, switches disappeared from the command line (argv). Turned out that Tk snatched them away. Demonstrations in an interactive tclsh:% set argv {-c 1 -d 2 -g 3 -n 4 -s 5 -u 6 -v 7} -c 1 -d 2 -g 3 -n 4 -s 5 -u 6 -v 7 % package require Tk this isn't a Tk applicationwindow "6" doesn't exist % set argv 5The Tk options are documented:
-colormap new -display display -geometry geometry -name name -sync -use id -visual visual --and a 1-character match is sufficient to take them away (the 5 remained because the -s option does not take an argument). Solution, if you don't want to use any of the Tk options: insert the protective -- at the beginning of argv:
% set argv {-c 1 -d 2 -g 3 -n 4 -s 5 -u 6 -v 7} -c 1 -d 2 -g 3 -n 4 -s 5 -u 6 -v 7 % set argv [linsert $argv 0 --] -- -c 1 -d 2 -g 3 -n 4 -s 5 -u 6 -v 7 % package require Tk 8.4 % set argv -c 1 -d 2 -g 3 -n 4 -s 5 -u 6 -v 7Martyn Smith: The other choice is to protect the argv variable contents before running the package require that way the end user does not need any special action.
Has anyone been thinking adding a tutorial for Tk into the Tk source code distribution, similar in concept to the Tcl tutorial being added in Tcl 8.5?DKF: Thinking? Yes. Doing anything about it? No. A set of lessons for Tk would be a very welcome addition!
[Things to explain: Bryan Schofield's posting on multiple Tk interpreters;AMG: I would like to know more about this since I'm dealing with an intermittent SIGSEGV (and possibly other kind of) crash when using multiple Tk interpreters, specifically in different threads. See [2] for the bug report.
[ Insert here pointers and discussions regarding Tk features ]