See Also edit
- Contains links to instructional pages on the general art of programming in Tk.
Description editWherever I found one, if there is already a page of links on some topic (e.g., Alternative GUI toolkits), I linked to the page of links, rather than to the individual pages. I'm sure I missed some, though...My reason for collecting these links is that while it is certainly possible to make a nice, easy-to-use interface in Tcl/Tk (and in particular, a nice-looking GUI), it's also easy to make one that is not so nice. (I have made many!) This seems to be a recurring theme in the Wiki, and many people have offered good suggestions for making nice interfaces. I wanted to have them easy to hand.An added challenge (at least for me) is that what the world in general thinks of as "nice-looking" is a moving target. Some of these have to do with real usability issues (e.g., the gripper, or sizer control) and some of them with changing styles for how things look (button-like buttons, flat buttons, blobby translucent buttons). For myself (and I suspect for many others), ignoring what the world in general expects in an interface isn't an option, so it's important to keep an eye on the moving target. I don't know what to do with this except add links to pages with information, widget sets, etc. for implementing the different styles.
User Interface Design LinksThese are links about user interface design in general.
- I've found Joel Spolsky's User Interface Design for Programmers  to be very useful. The site includes text from his book of the same title.
- The User Interface Hall of Shame . (The site itself is no longer active - this is an archived copy.) (Another archived copy with (some) images :  )
- The third edition of About Face by Cooper et al.
Also, Which Widget and Widget Configure are GUI debugging tools. There is also a Wiki page for Android, "the only open source testing tool for GUI programs."
GUI and Tk General Information
- Geometry Managers
- GUI Building Tools
- How Tk compares to other GUI toolkits
- Making Tk apps look native
- Good Looking Tk
- Creating Good GUIs
- Data Driven Tk GUI Construction
- Porting a Tk GUI to A Web Browser
GUI ElementsGeneral collections
- Balloon help: balloon help, tkballoon
- Dialogs: dialog
- Buttons: Fancy Tk Buttons, ICON
- Floating palettes: Floating Palette (Using detachable menus is another option -- similar functionality but less slick)
- Grippers/Resizers: Resize control, widget:resizeHandle
- custom cursors
- Making Shaped windows (that is, shapes other than rectangles); also see Managed and shaped toplevel
- Fonts: Introduction to Fonts
- Paned windows: Paning widgets, paned window
- Progress bars: Progress Bar (Fellows), poor man's progressbar
- Working with the system tray
- Tabbed notebooks: tabnotebook
- Table widget: Tktable, Tablelist
- Tree view: TkTreeCtrl
Making a Smoother User Experience
- Binding to a single mouse click
- Changing all fonts in an application
- AtExit handlers
- Drag and Drop
- Detecting Dual or Multiple Monitors
- Tips for the text widget: Home, End and other formatting problems, Move cursor by display line in a text widget
- Tips for the canvas widget: Restricting the Movement of Canvas Items, scanvas
- Inter-Process Communication: Inventory of IPC methods
- Keep a GUI alive during a long calculation
- Scroll bars that appear only when needed
- They aren't wide enough (about how to figure out how wide a button or label needs to be)
Wrapping Tk Around an Existing GUI
- For Unix/Linux: How to embed a non-Tk GUI into a Tk frame
- For Windows: Combining GUI applications developed with Tk and 'native' Windows toolkits
Internationalization and Encoding
Options for Windows Applications
- Microsoft Windows and Tk
- Combining GUI applications developed with Tk and 'native' Windows toolkits
- Windows Application Framework
- Using MFC Controls as Tk widgets
Options for MacOS
- MacWindowStyle for OS X
Options for *nixSo far this is the only one I've spotted that's *nix-specific. I suspect two reasons for this: *nix separates the OS from the windowing environment, and Tcl/Tk started in a *nix environment. As a result, there are going to be few *nix-specific recommendations.LV It seems, to me, that even with Tile going into the core, there continues to be comments concerning the default look of applications on Linux and other *nix based systems being less attractive than on other systems. Has anyone taken a look at the Tango project and other such projects?
Footnote With the earlier version of this page, I'd bitten off more than I could chew. I had also duplicated a lot of existing work. I hope this version will be more useful.