q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

Katherine Johnson — Mathematics to the Moon

Katherine Johnson’s mathematical calculations helped guide some of America’s most important early space missions while she confronted the racial and gender barriers faced by Black women in twentieth-century America.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

Tk (software)

Tk
Original authorJohn Ousterhout
DeveloperTcl Core Team[1]
Release1991; 35 years ago (1991)
Stable release
9.1.0[2] Edit this on Wikidata / 29 September 2026
Written inC
Operating systemCross-platform
PlatformCross-platform
TypeWidget toolkit
LicenseBSD-style[3]
Websitetcl.tk
Repository

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 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 8.6 supports Unicode within the Basic Multilingual Plane, while Tk 9 supports the full Unicode range.

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: Tk 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] Go (through tk9.0),[22] Haskell (called HTk),[23] 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,[24] both of which use Tcl as a bridge to access Tk, and Perl/Tk,[25] which provides native Perl access to Tk structures. The Python binding uses Tcl as a bridge to Tk.[26]

Features

[edit]

Tk provides various widgets.[27] 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.[28]

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:[29]

  • 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] Tk 9.1.0 RELEASED". 29 September 2026. Retrieved 1 October 2026.
  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. ^ "tk9.0: The CGo-free, cross platform GUI toolkit for Go". Go Packages. Retrieved 22 November 2024.
  23. ^ "HTk home". Informatik - FB3 - Uni Bremen. Retrieved 4 November 2016.
  24. ^ "Tkx::Tutorial - How to use Tkx". ActiveState Docs. Retrieved 1 November 2016.
  25. ^ Perl/Tk Concepts, Chapter 1 in Mastering Perl/Tk, ISBN 978-1565927162
  26. ^ Tkinter, Chapter 2.4 in Modern Tkinter for Busy Python Developers, ASIN B0071QDNLO
  27. ^ "Tk Commands, version 8.6.6". Tcl Developer Xchange. Retrieved 1 November 2016.
  28. ^ Widgets, Chapter 17.2 in Tcl and the Tk Toolkit , ISBN 978-0321336330
  29. ^ Geometry Managers, Chapter 17.6 in Tcl and the Tk Toolkit , ISBN 978-0321336330

Further reading

[edit]
[edit]

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

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 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 8.6 supports Unicode within the Basic Multilingual Plane, while Tk 9 supports the full Unicode range. Tk was designed to be extended, and a wide range of extensions are available that offer new widgets or other capabilities. 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). Highlights of version 8.5 include a new theming engine, originally called Tk Tile, but it is now generally referred to as "themed Tk", as well as improved font rendering. Highlights of version 8.6 include PNG support and angled text.

MORE →
No preview image
Wikipedia

Yahoo Widgets

Yahoo Widgets is a discontinued free application platform for Mac OS X and Microsoft Windows, specifically Windows XP, Vista and Windows 7. The software was previously called Konfabulator, but after being acquired by computer services company Yahoo on July 25, 2005, it was rebranded. The name Konfabulator was subsequently reinstated as the name of the underlying rendering engine. The engine uses a JavaScript runtime environment combined with an XML interpreter to run small applications referred to as widgets, and hence is part of a class of software applications called widget engines. On February 27, 2012, Yahoo updated the License agreement stating that as of April 3, 2012 Yahoo! Widgets will continue to be available for download but support and development would stop.

MORE →
Wikipedia

C4 Engine

The C4 Engine is a proprietary computer game engine developed by Terathon Software that is used to create 3D games and other types of interactive virtual simulations for PlayStation 5, PlayStation 4, PlayStation 3, Windows (XP and later), Mac OS X (versions 10.9 and later), Linux, and iOS.

MORE →
No preview image
Wikipedia

WebKit

WebKit is a browser engine primarily used in Apple's Safari web browser, as well as almost all web browsers on iOS and iPadOS. WebKit is also used by the PlayStation consoles starting with the PS3, the Tizen mobile operating systems, the Amazon Kindle e-book reader, Nintendo consoles starting with the 3DS Internet Browser, GNOME Web, and the discontinued BlackBerry Browser. WebKit started as a fork of the KHTML and KJS libraries from KDE, and has since been further developed by KDE contributors, Apple, Google, Nokia, Bitstream, BlackBerry, Sony, Igalia, and others. WebKit supports macOS, Windows, Linux, and various other Unix-like operating systems. On April 3, 2013, Google announced that it had forked WebCore, a component of WebKit, to be used in versions of Google Chrome under the name Blink. Since version 15 in May 2013, Opera web browser dropped its own Presto layout engine in favor of WebKit as implemented by Google in the Chromium project. Its JavaScript engine, JavaScriptCore, also powers the Bun server-side JS runtime, as opposed to V8 used by Node.js, Deno, and Blink. WebKit's C++ application programming interface (API) provides a set of classes to display Web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited. WebKit is open source and available under the BSD 2-Clause license with the exception of the WebCore and JavaScriptCore components, which are available under the GNU Lesser General Public License. As of March 7, 2013, WebKit is a trademark of Apple, registered with the United States Patent and Trademark Office.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

Who was the first African-American woman millionaire in the United States?

Madam C.J. Walker