Tk (yazılım)
Orijinal yazar(lar) | John Ousterhout |
---|---|
Geliştirici(ler) | Tcl Core Team[1] |
İlk yayınlanma | 1991 | )
Güncel sürüm | 9.0.0[2] / 26 Eylül 2024 |
Programlama dili | C |
İşletim sistemi | Cross-platform |
Platform | Cross-platform |
Tür | Widget toolkit |
Lisans | BSD-style[3] |
Resmî sitesi | tcl.tk |
Kod deposu |
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.
Tk genişletilmek üzere tasarlanmıştır ve yeni widget'lar veya başka yetenekler sunan çok çeşitli uzantılar mevcuttur.[4][5]
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).[6] Sürüm 8.5'in öne çıkan özellikleri arasında, orijinal olarak Tk Tile[7] 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] 8.6 sürümünün öne çıkan özellikleri arasında PNG desteği ve açılı metin bulunur.[9]
Tarih
[değiştir | kaynağı değiştir]Tk, John Ousterhout tarafından Tcl betik dilinin bir uzantısı olarak geliştirilmiştir. İlk olarak 1991'de halka açıldı.[10] Tk versiyonlama, versiyon 8.0'a kadar Tcl'den ayrı olarak yapıldı.
Tk orijinal olarak Unix/X11 için yazılmıştır ve Motif ve zamanın diğer X11 araç takımlarından daha kolay öğrenilmesi ve kullanılması nedeniyle 1990'larda programcılar arasında son derece popüler olduğunu kanıtlamıştır.[11] Tk ayrıca Microsoft Windows ve Macintosh platformlarına taşındı, Tk 4.2'den başlayarak ve Tk 8.0'da yerel görünüm ve hisle geliştirildi (1997'de yayınlandı). 1990'larda Tk'nin popülaritesini ve önemini belirtmek için Ousterhout'a 1997'de Tcl/Tk için ACM Yazılım Sistemi Ödülü verildi:[12]
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.[13] 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.[14]
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.[8] 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.[15]
Mimari
[değiştir | kaynağı değiştir]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.[16]
Tk aşağıdaki özelliklere sahiptir:
- Platformdan bağımsız : Tcl gibi Tk yorumlanır. Birden fazla platforma taşındı ve değişiklik yapmadan hepsinde kolayca çalıştırılabilir.[17]
- Özelleştirilebilir : Tk'deki bir parçacığın hemen hemen tüm özellikleri, parçacığın oluşturulması sırasındaki seçeneklerle veya daha sonra yapılandır komutuyla özelleştirilebilir.[18]
- 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.[19]
Dil bağlamaları
[değiştir | kaynağı değiştir]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.[20] Ada (TASH olarak adlandırılır),[21] Haskell (HTk olarak adlandırılır),[22] 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[23] ve Tk'ye yerel Perl erişimi sağlayan Perl/Tk[24] yapılar. Python bağlaması, Tcl'yi Tk'ye köprü olarak kullanır.[25]
Özellikler
[değiştir | kaynağı değiştir]Tk çeşitli widget'lar sağlar.[26] Temel widget'lar, genellikle işletim sistemi tarafından ekranda hareket ettirilebilen kayan pencerelerde barındırılan toplevel
widget'lara gömülüdür.[27]
Temel widget'lar
[değiştir | kaynağı değiştir]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
Üst düzey widget'lar
[değiştir | kaynağı değiştir]tk_chooseColor
– kullanıcının bir renk seçmesi için bir iletişim kutusu açar.tk_chooseDirectory
– kullanıcının bir dizin seçmesi için bir iletişim kutusu açar.tk_dialog
– kalıcı bir iletişim kutusu oluşturur ve yanıt bekler.tk_getOpenFile
– kullanıcının açacağı dosyayı seçmesi için bir iletişim kutusu açar.tk_getSaveFile
– kullanıcının kaydedilecek dosyayı seçmesi için bir iletişim kutusu açar.tk_messageBox
- bir mesaj penceresi açar ve bir kullanıcı yanıtı bekler.tk_popup
– bir açılır menü gönderir.toplevel
- üst düzey widget'ları oluşturur ve yönetir.
Geometri yöneticileri
[değiştir | kaynağı değiştir]Temel widget'lar, geometri yöneticileri kullanılarak toplevel
pencerelerde düzenlenir:[28]
place
– widget'ları mutlak konumlara konumlandırırgrid
- bir ızgarada widget'ları düzenlerpack
- widget'ları bir boşluğa paketler
Ayrıca bakınız
[değiştir | kaynağı değiştir]- Widget araç takımlarının listesi
- wish (Pencere Kabuğu)
- Expect
- Tkinter - Python için bir Tk bağlaması
- Itk
- Kategori:Tk kullanan yazılım (yazılım)
Kaynakça
[değiştir | kaynağı değiştir]- ^ "Tcl/Tk Core Development". Tcl Developer Xchange. 30 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "[TCLCORE] Tk 9.0.0 RELEASED".
- ^ "Tcl/Tk Licensing Terms". Tcl Developer Xchange. 27 Haziran 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Kasım 2016.
- ^ Writing a Tk Widget in C, Chapter 46 in Practical Programming in Tcl and Tk, 0-13-038560-3
- ^ "Extensions for Tcl and Tk". Tcler's Wiki. 30 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "Tcl/Tk 8.0". Tcl Developer Xchange. 18 Eylül 2013. 14 Temmuz 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Temmuz 2014.
- ^ "Tile: an improved themeing engine for Tk". SourceForge. 8 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Kasım 2016.
- ^ a b "Tcl/Tk 8.5 Release Announcement". Tcl Developer Xchange. 18 Eylül 2013. 18 Haziran 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Temmuz 2014.
- ^ "Tcl/Tk 8.6 Release Announcement". Tcl Developer Xchange. 20 Eylül 2013. 27 Haziran 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Temmuz 2014.
- ^ "History of Tcl". Tcl Developer Exchange. 10 Haziran 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Nisan 2010. Yazar
|ad1=
eksik|soyadı1=
(yardım) - ^ "Tk Backgrounder". TkDocs. 6 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Kasım 2016.
- ^ "John K Ousterhout - Award Winner". ACM Awards. 3 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Kasım 2016.
- ^ "TIP #48: Tk Widget Styling Support". Tcl Developer Xchange. 4 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "treeview". Tcler's Wiki. 14 Haziran 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "TIP #319: Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets". Tcl Developer Xchange. 30 Haziran 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "wish manual page - Tk Applications". Tcl Developer Xchange. 9 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "How to Compile Tcl". Tcl Developer Xchange. 21 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "ttk::widget manual page - Tk Themed Widget". Tcl Developer Xchange. 9 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "option manual page - Built-In Commands". Tcl Developer Xchange. 9 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ "Languages with a Tk binding". Tcler's Wiki. 6 Temmuz 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Temmuz 2014.
- ^ "TASH". SourceForge. 12 Mart 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Temmuz 2014.
- ^ "HTk home". Informatik - FB3 - Uni Bremen. 18 Ekim 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Kasım 2016.
- ^ "Tkx::Tutorial - How to use Tkx". ActiveState Docs. 10 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ Perl/Tk Concepts, Chapter 1 in Mastering Perl/Tk, 978-1565927162
- ^ Tkinter, Chapter 2.4 in Modern Tkinter for Busy Python Developers, ASIN B0071QDNLO
- ^ "Tk Commands, version 8.6.6". Tcl Developer Xchange. 18 Ekim 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Kasım 2016.
- ^ Widgets', Chapter 17.2 in Tcl and the Tk Toolkit , 978-0321336330
- ^ Geometry Managers', Chapter 17.6 in Tcl and the Tk Toolkit , 978-0321336330
Konuyla ilgili yayınlar
[değiştir | kaynağı değiştir]- Ousterhout, John K.; Jones, Ken (2009). Tcl and the Tk Toolkit (2. bas.). Addison Wesley. ISBN 978-0-321-33633-0. 2 Mayıs 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Kasım 2012.
- Foster-Johnson, Eric (1997). Graphical Applications with Tcl & Tk (2. bas.). New York, N.Y.: M&T Books. ISBN 1-55851-569-0. Erişim tarihi: 4 Kasım 2012.
- Brent B. Welch, Practical Programming in Tcl and Tk 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi., Prentice Hall, Upper Saddle River, NJ, USA, 0-13-038560-3, 2003
- J Adrian Zimmer, Tcl/Tk for Programmers 4 Nisan 2017 tarihinde Wayback Machine sitesinde arşivlendi., IEEE Computer Society, distributed by John Wiley and Sons, 0-8186-8515-8, 1998
- Mark Harrison and Michael McLennan, Effective Tcl/Tk Programming 21 Eylül 2022 tarihinde Wayback Machine sitesinde arşivlendi., Addison-Wesley, Reading, MA, USA, 0-201-63474-0, 1998
- Bert Wheeler, Tcl/Tk 8.5 Programming Cookbook 4 Mayıs 2013 tarihinde Wayback Machine sitesinde arşivlendi., Packt Publishing, Birmingham, England, UK, 1849512981, 2011
- Clif Flynt Tcl/Tk, Third Edition: A Developer’s Guide, 0123847176, 2012
Dış bağlantılar
[değiştir | kaynağı değiştir]- Resmî site
- Tcler's Wiki 20 Eylül 2022 tarihinde Wayback Machine sitesinde arşivlendi.
- Tk 8.6 Manual
- Tk docs 12 Mayıs 2017 tarihinde Wayback Machine sitesinde arşivlendi.: modern Tk tutorial for Tcl, Ruby, Perl and Python
- Curlie'de Tcl-Tk (DMOZ tabanlı)
- Languages with a Tk binding