Tk (yazılım)

Tk, birçok programlama dilinde bir grafik kullanıcı arabirimi (GUI) oluşturmak için GUI widget'larının temel öğelerinden oluşan bir kitaplık sağlayan ücretsiz ve açık kaynaklı, çapraz platform bir widget araç takımıdır .

Tk, düğme, menü, tuval, metin, çerçeve, etiket vb. gibi masaüstü uygulamaları geliştirmek için yaygın olarak ihtiyaç duyulan bir dizi widget sağlar. Tk, Linux, Mac OS, Unix ve Microsoft Windows'un çoğu çeşidinde çalışacak şekilde taşınmıştır. Tcl gibi, Tk da Temel Çok Dilli Düzlem(Basic Multilingual Plane) içinde Unicode'u destekler, ancak henüz mevcut genişletilmiş tam Unicode'u (örneğin, Tk'nin desteklediği UCS-2'den UTF-16) işlemek için genişletilmemiştir.

Tcl/Tk 8'den beri, "doğal görünüm ve his" sunar (örneğin, menüler ve düğmeler, herhangi bir platform için "yerel" yazılım tarzında görüntülenir). Sürüm 8.5'in öne çıkan özellikleri arasında, orijinal olarak Tk Tile adlı yeni bir tema motoru yer alıyor, ancak şimdi genellikle "temalı Tk" olarak anılıyor ve ayrıca geliştirilmiş yazı tipi oluşturma. 8.6 sürümünün öne çıkan özellikleri arasında PNG desteği ve açılı metin bulunur.

Tk, John Ousterhout tarafından Tcl betik dilinin bir uzantısı olarak geliştirilmiştir. İlk olarak 1991'de halka açıldı. Tk versiyonlama, versiyon 8.0'a kadar Tcl'den ayrı olarak yapıldı.

Tk'ye olan ilgi 1990'ların sonlarından itibaren önemli ölçüde azaldı. Motif'in FLTK, Qt ve GTK gibi araç takımları ile değiştirilmesine rağmen, Unix'teki varsayılan görünüm ve his hala Motif'i taklit ediyor. Uygulamalarda (örneğin ağaçlar, birleşik giriş kutuları, sekmeli defterler) yaygın olarak kullanılan widget'lar Tk çekirdeğinde mevcut değildi, ancak yalnızca birden çok, genellikle rekabet eden eklentiler aracılığıyla mevcuttu.

2007'nin sonlarında piyasaya sürülen Tk 8.5, çekirdeğe eksik widget'lar ekleyerek, yeni bir tema motoru sunarak ve Unix'teki görünüm ve hissi modernleştirerek bu sorunların bazılarını düzeltti. Bununla birlikte, bu gelişmeleri dahil etmek için bazı kod değişiklikleri gerektiğinden, mevcut birçok uygulama, Tk'nin bilindiği Motif'ten ilham alan eski hissi koruyor.

Tk, Tcl için geliştirilmiş, platformdan bağımsız bir GUI iskeletidir . Bir Tcl kabuğundan (tclsh), Tk, package require Tk kullanılarak çağrılabilir. wish programı (Windowing Shell), Tk sağlamanın yanı sıra grafiksel bir pencerede bir tclsh kabuğunu çalıştırmanın bir yolunu sağlar.

Yapılandırılabilir : Seçeneklerin çoğu bir seçenek veritabanında saklanabilir, bu da bir uygulamanın görünümünü (renk şeması gibi) parametreleştirmeyi çok kolaylaştırır. Bu aynı zamanda uygulamaya özel seçeneklerin saklanmasının yalnızca seçenek ekleme komutlarını kaydetme ve uygulamayı yüklerken bunları yürütme meselesi olduğu anlamına gelir.

Bir programlama dilinde yazılmış bir kitaplık, bağlamalar yazılırsa başka bir dilde kullanılabilir; Tk, Tcl dili ile entegredir. Diğer çeşitli dillerde, kısmi bir listesi Tk web sitesinde bulunan Tk için bağlamalar vardır. Ada (TASH olarak adlandırılır), Haskell (HTk olarak adlandırılır), Perl, Python (Tkinter olarak adlandırılır), Ruby, Rexx ve Common Lisp dahil olmak üzere listelenmeyen ek diller için bağlamalar mevcuttur.

Perl'den Tk kullanmanın birkaç yolu vardır: her ikisi de Tk'ye erişmek için bir köprü olarak Tcl'yi kullanan Tcl::Tk ve Tkx Perl modülleri ve Tk'ye yerel Perl erişimi sağlayan Perl/Tk yapılar. Python bağlaması, Tcl'yi Tk'ye köprü olarak kullanır.