Tk (bilgisayar bilimi)

Tk Windows 10, Kasım 2016.png görüntüsünde Tk 8.6.6 kullanan Tk-Demo'nun açıklaması. Bilgi
Tarafından geliştirildi Tcl Core Team ve diğerleri.
Son sürüm 8.6.11 (31 Aralık 2020)
Depozito core.tcl.tk/tk
Yazılmış VS
İşletim sistemi Çoklu platform
Çevre Çapraz platform
Tür GUI kitaplığı
Lisans BSD
İnternet sitesi www.tcl.tk

Tk a, kütüphane bir platformlar arası , GUI'ler . John Ousterhout tarafından , başlangıçta Tcl kodlama dili için tasarlanan bu program, bugün Perl , Python , Ruby , Lua , Common Lisp , REXX , Ada , Prolog , OCaml , R , Julia , Go , Rust veya APL dahil olmak üzere çeşitli dillerle arayüz oluşturuyor .

widget'ları

Tk, doğal olarak bir dizi grafik arabirim bileşeni ( widget ) sunar:


  • label (etiket)
  • entry( giriş metin alanı )
  • listbox (kayan liste)
  • tk_optionMenu (listeleme)
  • menu (kayan menü)
  • menubutton (bir düğmeden açılan menü)
  • scale (yatay ve dikey kaydırıcı)
  • spinbox (dijital seçim alanı)
  • frame (çerçeve)
  • labelframe (başlıklı çerçeve)
  • scrollbar( kaydırma çubuğu )
  • panedwindow (sürgülü panel)
  • text (gelişmiş hiper metin kapsayıcı)
  • canvas (gelişmiş 2D grafik nesnesi kabı)
  • tk_chooseColor (renk seçici)
  • tk_chooseDirectory (dizin seçici)
  • tk_dialog (kalıcı iletişim kutusu)
  • tk_getOpenFile (dosya seçici)
  • tk_messageBox (mesaj Kutusu)
  • tk_popup( bağlamsal menü )

Her parçacığın tipine (boyut, rölyef, renk, içerik, durum, olay) göre değiştirilebilen özellikleri vardır.

Geometri yönetimi

Boyutu kontrol etmek ve widget'ları grafik olarak düzenlemek için üç geometri yöneticisi vardır:

Bir widget , bir geometri yöneticisi ile ilişkili olmadığı sürece , ekranda görünmez.

Olay yönetimi

Kullanıcı etkileşiminin sıralı olduğu bir komut satırı programından farklı olarak, grafik arayüz diğer mantıkla olay programlama kavramını içerir . Herhangi bir zamanda, her bir pencere öğesi , kullanıcı eyleminden (olay) etkilenebilir. Basit olaylar (Var tıklayın ait fare girişi için bir düğmeye klavyede bir alanda) ve daha karmaşık olaylar (bir menüde navigasyon veya bir açılan).

Her bir parçacığa varsayılan olarak bir dizi otomatik olay yanıtı eklenir . Bunlar, programcının müdahale etmek için çok az şeye sahip olduğu düşük seviyeli olayların yönetimine karşılık gelir. Bir olay döngüsü bunlarla ilgilenir ve onları dağıtır.

Ardından, seçenek aracılığıyla, -commandbir parçacığı bir prosedür çağrısına veya harici bir komuta ( geri arama ) bağlayabiliriz . Varsayılan olarak tanımlanmamış belirli bir yanıtı bir widget ile ilişkilendirmek istiyorsanız , Tcl-Tk komut sayesinde çok esnek bir mekanizmaya sahiptir bind.

Örnekler

pack [button .b -text Quitter -bg blue -fg white -command exit]
  • İle bir uyarı mesajı tk_messageBox.
tk_messageBox -message "Vous devez entrer une valeur entre 1 et 100" \ -type ok -icon warning
  • 6 satır kodlu dijital saat.
proc every {t script} { eval $script after $t [list every $t $script] } pack [label .horloge -textvariable time -font {Lucida 18}] every 1000 {set ::time [clock format [clock seconds] -format %H:%M:%S]}
  • Bir widget'ta Yunanca, Rusça, İbranice, Arapça, Çince ve Japonca unicode karakterlerinin görüntülenmesi . text
package require Tk bind all <Escape> {exit} wm title . "Exemple Unicode" pack [text .t -font {Arial 14}] .t insert end " Grec\t\t \u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC\u03B3\u03BB\u03CE\u03C3\u03C3\u03B1 Russe\t\t \u0420\u0443\u0441\u0441\u043A\u0438\u0439\u044F\u0437\u044B\u043A Hebreu\t\t \u05DD\u05D9\u05DC\u05E9\u05D5\u05E8\u05D9\u05DC\u05D9\u05D0\u05E8\u05E9\u05D9 Arabe\t\t \uFE94\uFEF4\uFE91\uFEAE\uFECC\uFEDF\uFE8D\uFE94\uFEE4\uFEE0\uFEDC\uFEDF\uFE8D Chinois traditionnel\t \u4E2D\u570B\u7684\u6F22\u5B57 Japonais\t\t \u65E5\u672C\u8A9E\u306E\u3072\u3089\u304C\u306A,\u6F22\u5B57\u3068\u30AB\u30BF\u30AB\u30CA "
  • Yatay kaydırıcı kullanarak kenar sayısı etkileşimli olarak değişen bir çokgeni görüntülemek için widget'ı kullanma canvas.
package require Tk bind all <Escape> {exit} proc AffichePolygone {w x y n} { set r 140; set angle [expr {6.28318/$n}] for {set i 0} {$i < $n} {incr i} { lappend l [expr {cos($angle*$i)*$r+$x}] [expr {sin($angle*$i)*$r+$y}] } $w delete all $w create polygon $l -outline black -width 1 -fill blue } set edge 3 wm title . "Polygone" pack [canvas .c -background white -width 320 -height 320] pack [scale .sc -from 1 -to 12 -length 240 -resolution 1 \ -orient horiz -bd 1 -showvalue true -variable edge \ -command {AffichePolygone .c 160 160}]

Standart kitaplık

Tk, yalnızca Tcl'de yazılmış Tklib ( Tcl'nin karşılığı olan Tcllib) adlı standart bir kitaplığa sahiptir . Verilerin grafiksel gösterimi, metinlerin, tabloların, belirli giriş alanlarının ve ayrıca BWidget'in ( yüksek seviyeli widget kütüphanesi) yönetimi ve görüntülenmesi için çeşitli modüller içerir .

Tk tarihi

John Ousterhout , 1988'in sonunda Tcl'nin geliştirilmesine paralel olarak bu İnsan Makine Arayüzünü (HMI) tasarlamaya başladı . Tk sistemi etkilenmiştir HyperCard arasında Apple . Bu geliştirilmiştir C ve dayanıyordu Xlib denilen on GUI bileşenleri sağlayarak widget'ları ( kasılma ait pencere gadget ). O zamanlar sadece UNIX üzerinde çalışıyorlardı .

Tcl ve Tk kombinasyonu (Tcl-Tk veya Tcl / Tk olarak adlandırılır) ilk olarak Ocak 1991En USENIX Konferansı . Motif kütüphanesi ile yazılan bir uygulamanın karmaşıklığını ve artan geliştirme süresinin üstesinden gelmeyi mümkün kıldı . Daha sonra, Tk'nin gelişimi, diğer dillerle kullanılmak üzere Tcl'ninkinden yeterince ayrıştırıldı. Windows ve Macintosh sürümleri , 1994 yılında Sun Microsystems laboratuvarının geliştiricilerinin dürtüsü altında ortaya çıktı . Açıklık uğruna,Ağustos 1997Tk sürüm numaralarının Tcl ile uyumlu hale getirilmesine karar verildi.

İçinde Aralık 2007Tcl-Tk 8.5'ten çıkar. Bu sürüm, grafik arayüzün görsel yönünü büyük ölçüde geliştiren ve böylece Motif kütüphanesinin mirasından kesinlikle kopan bir tema motoru dahil etme özelliğine sahiptir. İçindeAralık 2012, Tcl-Tk 8.6'dan çıkar. Widget'teki nesnelerin koordinatları canvasve PNG formatının desteği üzerinde çalışmalar yapılmıştır .

Önemli sürümlerin geçmişi

Versiyon Yayın tarihi Ana yenilikler
8.6 20 Aralık 2012
  • Alfa kanal kontrolü ile PNG formatı desteği
  • Platformu dikkate alan dökme demir seçici
  • Kanvas widget'ında nesnelerin mutlak hareketi
  • Tuval widget'ındaki metinleri döndürme
  • Web standartlarına göre renk adı
8.5 20 Aralık 2007
  • Çekirdeğe bir tema motorunun dahil edilmesi
  • X11 altındaki kenar yumuşatma ( kenar yumuşatma ) yazı tipleri
  • textTüm platformlarda daha akıcı ve daha uyumlu bir widget
  • Sekmelerin, birleşik giriş kutularının, ağaç listelerinin ve ilerleme çubuklarının dahil edilmesi
  • Windows için şeffaflık yönetimi
8.4 10 Eylül 2002
  • spinboxKayar paneller ( panedwindow) ve başlıklı çerçevelerin dahil edilmesi ( labelframe)
  • Geometri yönetimi için asimetrik kama
  • Düğmeler, etiketler ve menüler için bileşik widget'lar (metin ve görüntü)
  • Görüntüler için şeffaflık yönetimi
8.3 10 Şubat 2000
  • Widget Seçeneklerini Genişletme canvas
  • Geliştirilmiş görüntü desteği
  • Dörtlü fare tıklama yönetimi
8.1 29 Nisan 1999
  • Unicode desteği
8.0 18 Ağu 1997
  • Macintosh ve Windows platformları için yerel görünüm
  • Widget için yeni arayüz menu
  • Yazı tiplerini yönetmek için yeni mekanizma
  • Harici uygulamaların Tk altında Unix altında dahil edilmesi
  • Widget'taki görseller için destek text
  • Safe-Tcl güvenli ortamında Tk işlevi
  • Tk sürüm numaralarının Tcl sürüm numaralarıyla hizalanması
4.2 16 Ekim 1996
  • Geometri yöneticisini ( grid) yeniden yazın
  • Dosya seçici, renk seçici ve mesaj kutuları için standartlaştırılmış widget'lar
  • Windows ve Macintosh için ilk sürüm
4.1 21 Nisan 1996
  • Yeni geometri yöneticisi ( grid)
  • Geliştirilmiş widget performansı text
  • Windows ve Macintosh için ilk sürüm
4.0 1 Temmuz 1995
  • XPM ve GIF resim formatları desteği
  • Widget Seçeneklerini Genişletme text
  • Motif ile daha iyi uyumluluk
3.0 Aralık 1992
2.2 Ağustos 1992
  • Araç text
  • Widget iyileştirmesi canvas
  • Bir olay komutunu bekleyin ( tkwait)
  • -stateBir widget'ı devre dışı bırakma seçenekleri
  • Giriş alanları için yeni seçenekler

Ayrılmış kelimeler

bell labelframe tk_bisque ttk::checkbutton ttk_vsapi bind listbox tk_chooseColor ttk::combobox winfo bindtags loadTk tk_chooseDirectory ttk::entry wm bitmap lower tk_dialog ttk::frame button menu tk_focusFollowsMouse ttk::image canvas menubutton tk_focusNext ttk::intro checkbutton message tk_focusPrev ttk::label clipboard option tk_getOpenFile ttk::labelframe colors options tk_getSaveFile ttk::menubutton console pack tk_menuSetFocus ttk::notebook cursors panedwindow tk_messageBox ttk::panedwindow destroy photo tk_optionMenu ttk::progressbar entry place tk_popup ttk::radiobutton event radiobutton tk_setPalette ttk::scale focus raise tk_textCopy ttk::scrollbar font scale tk_textCut ttk::separator frame scrollbar tk_textPaste ttk::sizegrip grab selection tkerror ttk::spinbox grid send tkvars ttk::style image spinbox tkwait ttk::treeview keysims text toplevel ttk::widget label tk ttk::button ttk_image

Notlar ve referanslar

  1. "  https://www.tcl.tk/software/tcltk/8.6.html  " ( 6 Şubat 2021'de erişildi )
  2. (inç) Tcl / Tk 8.6.11 YAYINLANDI  " ,4 Ocak 2021( 6 Şubat 2021'de erişildi )

Ekler

Kaynakça

  • John K. Ousterhout, Hypergraphics and Hypertext in Tk , The X Resource, Issue Five, 1993
  • Cameron Laird, Kathryn Soraiz, Tk , UnixInsider 8/4/2000 standardını belirliyor. [1]
  • Kathryn Edwards, Programlama Dilleri AZ: Tcl , Computerworld, Mayıs 2009. [2]
Kitabın
  • (fr) Bernard Desgraupes, Tcl / Tk - Öğrenme ve Referans , Vuibert, ( ISBN  2-7117-8679-X ) , 2002.
  • (en) John K. Ousterhout, Tcl and the Tk Toolkit , Addison-Wesley, Reading, MA, USA, ( ISBN  0-201-63337-X ) , 1994. (Taslak çevrimiçi olarak mevcuttur )
  • (en) Brent B. Welch, Tcl and Tk'da Pratik Programlama , Prentice Hall, Upper Saddle River, NJ, ABD, ( ISBN  0-13-038560-3 ) , 2003. (Birkaç bölüm çevrimiçi )
  • (en) J. Adrian Zimmer, Tcl / Tk for Programmers , IEEE Computer Society, dağıtımı John Wiley and Sons, ( ISBN  0-8186-8515-8 ) , 1998. ( Çevrimiçi birkaç bölüm )
  • (tr) Cliff Flynt, Gerçek Programcılar için Tcl / Tk , Morgan Kaufman Publishers, ( ISBN  0-122-61205-1 ) , 1998.
  • (en) Eric Foster-Johnson, Tcl ve Tk ile Grafiksel uygulamalar , M&T, ( ISBN  1-55851569-0 ) , 1997.
  • (tr) Mark Harrison ve Michael McLennan, Etkili Tcl / Tk Programlama , Addison-Wesley, Reading, MA, USA, ( ISBN  0-201-63474-0 ) , 1998.
  • (en) Mark Harrison (ed), Tcl / Tk Tools , O'Reilly Media, ( ISBN  1-56592-218-2 ) , 1997.

İlgili Makaleler

Dış bağlantılar

En Çok Kullanılan Kitaplıklar ve Uzantılar