Tk(소프트웨어)

Tk (software)
Tk
Tcl logo
Tk-Demo using Tk 8.6.6 on Windows 10, November 2016.png
Windows 10의 Tk 8.6.6
원저작자존 오스터허우트
개발자TCL 코어[1]
초기 릴리즈1991년; 31년 전(1991년)
안정된 릴리스
2021년 11월 5일 / 8.6.12[2][3]
저장소
기입처C
운영 체제크로스 플랫폼
플랫폼크로스 플랫폼
유형위젯 툴킷
면허증.BSD 스타일의[4]
웹 사이트www.tcl.tk

Tk무료 오픈 소스 크로스 플랫폼 위젯 툴킷으로, 많은 프로그래밍 언어로 그래픽 사용자 인터페이스(GUI)를 구축하기 위한 GUI 위젯의 기본 요소 라이브러리를 제공합니다.

TK는 버튼, 메뉴, 캔버스, 텍스트, 프레임, 라벨 등 데스크톱 애플리케이션 개발에 일반적으로 필요한 위젯을 제공합니다.Tk는 대부분의 Linux, Mac OS, Unix 및 Microsoft Windows 버전에서 실행되도록 포팅되어 있습니다.Tcl과 마찬가지로 Tk는 기본 다국어 플레인 내에서 Unicode를 지원하지만 현재 확장되어 있는 전체 Unicode(예를 들어 Tk가 지원하는 UCS-2의 UTF-16)를 처리하도록 아직 확장되지 않았습니다.

TK는 확장되도록 설계되었으며 새로운 위젯 및 기타 [5][6]기능을 제공하는 다양한 확장 기능을 사용할 수 있습니다.

Tcl/Tk 8부터는 "네이티브 룩 앤 필"을 제공합니다(예를 들어 메뉴와 버튼은 특정 플랫폼에 [7]대해 "네이티브" 소프트웨어 방식으로 표시됩니다).버전 8.5의 하이라이트는 원래 Tk [8]Tile이라고 불리던 새로운 테마 엔진이 포함되어 있지만, 현재는 폰트 [9]렌더링이 개선되었을 뿐만 아니라 일반적으로 "테마 Tk"라고 불립니다.버전 8.6의 주요 특징은 PNG 지원 및 각진 [10]텍스트입니다.

역사

Tk는 존 오스터하우트에 의해 Tcl 스크립트 언어의 확장으로 개발되었습니다.그것은 [11]1991년에 처음으로 공개되었다.Tk 버전 관리는 버전 8.0까지 TCL과 별도로 수행되었습니다.

Tk는 원래 Unix/X11용으로 작성되었으며,[12] Motif 및 기타 X11 툴킷보다 배우고 사용하기 쉽기 때문에 1990년대에 프로그래머들에게 큰 인기를 끌었다.Tk는 Tk 4.2 이후 Microsoft Windows 및 Macintosh 플랫폼에도 이식되어 Tk 8.0(1997년 출시)에서 네이티브한 외관과 느낌으로 개선되었습니다.1990년대 Tk의 인기와 중요성을 기념하여 Ousterhout은 1997년 Tcl/Tk로 [13]ACM Software System Award를 수상하였습니다.

ACM Software System Award 수상자: John K Ousterhout

개발자가 기존 컴포넌트에서 복잡한 시스템을 작성할 수 있도록 하는 TCL 스크립트 언어.임베디드 Tk는 그래픽 사용자 인터페이스를 작성하기 위한 간단한 메커니즘을 제공합니다.이 두 가지가 결합되어 소프트웨어 레퍼토리에 강력한 추가가 됩니다.

Tk에 대한 관심은 1990년대 후반 이후 크게 시들해졌다.FLTK, Qt, GTK [14]등의 툴킷이 Motif를 대체하고 있음에도 불구하고 Unix의 디폴트 룩앤필은 여전히 Motif를 모방하고 있습니다.응용 프로그램(트리, 콤보 박스, 탭 노트북 등)에서 일반적으로 사용되는 위젯은 Tk 코어에서는 사용할 수 없으며, 여러 개의 [15]경쟁 애드온에서만 사용할 수 있습니다.

2007년 후반에 출시된 Tk 8.5에서는 코어에 누락된 위젯을 추가하고 새로운 테마 엔진을 도입하여 Unix의 [9]외관과 느낌을 현대화함으로써 이러한 문제의 일부를 수정했습니다.그러나 이러한 발전을 통합하기 위해 일부 코드 변경이 필요했기 때문에, 많은 기존 애플리케이션은 Tk가 [16]유명해진 오래된 모티브에서 영감을 받은 느낌을 그대로 유지하고 있습니다.

아키텍처

Tk는 Tcl용으로 개발된 플랫폼에 의존하지 않는 GUI 프레임워크입니다.TCL 쉘(tclsh)에서 Tk는 다음 명령을 사용하여 호출할 수 있습니다.package require Tk프로그램 위시(WINDowing Shell)는 Tk를 [17]제공할 뿐만 아니라 그래픽 창에서 tclsh 셸을 실행하는 방법을 제공합니다.

Tk에는 다음 특성이 있습니다.

  • 플랫폼에 의존하지 않는 경우: Tcl과 마찬가지로 Tk가 해석됩니다.여러 플랫폼으로 포팅되어 있으며 [18]변경 없이 모든 플랫폼에서 쉽게 실행할 수 있습니다.
  • 커스터마이즈 가능:Tk에 있는 위젯의 거의 모든 기능은 위젯 작성 시 옵션을 통해 커스터마이즈하거나 나중에 구성 [19]명령을 통해 커스터마이즈할 수 있습니다.
  • 설정 가능:많은 옵션을 옵션 데이터베이스에 저장할 수 있으므로 응용프로그램(예: 색 구성표)의 모양을 매우 쉽게 매개변수로 지정할 수 있습니다.이는 애플리케이션 고유의 옵션을 저장하는 것이 [20]option add 명령어를 저장하고 응용 프로그램을 로드할 때 실행하기만 하면 된다는 것을 의미합니다.

언어 바인딩

바인딩이 작성될 경우 한 프로그래밍 언어로 작성된 라이브러리를 다른 언어로 사용할 수 있습니다.Tk는 Tcl 언어와 통합되어 있습니다.그 외의 다양한 언어에는 Tk의 바인딩이 있으며, 이 바인딩의 일부는 [21]Tk 웹사이트에 게재되어 있습니다.바인딩은 Ada([22]TAH라고 함), Haskell([23]HTK라고 ), Perl, Python(Tkinter라고 ), Ruby, Rexx 및 Common Lisp 등 목록에 없는 추가 언어에 대해 존재합니다.

Perl에서 Tk를 사용하는 방법에는 Tcl이 있습니다.: Tk 및 Tkx Perl 모듈([24]두 모듈 모두 Tk에 액세스하기 위한 브리지로서 Tcl을 사용하고 Tk 구조에 대한 네이티브 Perl 액세스를 제공하는 Perl/Tk).[25]Python 바인딩은 Tk에 [26]대한 브리지로서 Tcl을 사용합니다.

특징들

TK는 다양한 [27]위젯을 제공합니다.기본 위젯이 내장되어 있습니다.toplevel위젯은 일반적으로 운영체제에 의해 [28]화면상에서 이동할 수 있는 부동창에서 호스팅됩니다.

기본 위젯

  • 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

최상위 위젯

  • tk_chooseColor– 사용자가 색상을 선택할 수 있는 대화 상자가 나타납니다.
  • tk_chooseDirectory– 사용자가 디렉토리를 선택할 수 있는 대화 상자가 나타납니다.
  • tk_dialog– 모달 대화상자를 만들고 응답을 기다립니다.
  • tk_getOpenFile– 사용자가 열 파일을 선택할 수 있는 대화 상자가 나타납니다.
  • tk_getSaveFile– 사용자가 저장할 파일을 선택할 수 있는 대화 상자가 나타납니다.
  • tk_messageBox– 메시지 창을 띄우고 사용자 응답을 기다립니다.
  • tk_popup– 팝업 메뉴를 게시합니다.
  • toplevel– 최상위 위젯을 작성하고 조작합니다.

지오메트리 매니저

기본 위젯은 다음 위치에 배열되어 있습니다.toplevel지오메트리 [29]관리자를 사용한 창:

  • place– 위젯을 절대 위치에 배치
  • grid– 위젯을 그리드에 배치
  • pack– 위젯을 캐비티에 넣습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Tcl/Tk Core Development". Tcl Developer Xchange. Retrieved 1 November 2016.
  2. ^ https://www.tcl.tk/software/tcltk/8.6.html 를 참조해 주세요.
  3. ^ "Tcl / Tk 8.6.12 RELEASED". 5 November 2021.
  4. ^ "Tcl/Tk Licensing Terms". Tcl Developer Xchange. Retrieved 4 November 2016.
  5. ^ C의 Tk 위젯 작성, Tcl 및 Tk의 실용 프로그래밍 46장, ISBN 0-13-038560-3
  6. ^ "Extensions for Tcl and Tk". Tcler's Wiki. Retrieved 1 November 2016.
  7. ^ "Tcl/Tk 8.0". Tcl Developer Xchange. 18 September 2013. Retrieved 1 July 2014.
  8. ^ "Tile: an improved themeing engine for Tk". SourceForge. Retrieved 4 November 2016.
  9. ^ a b "Tcl/Tk 8.5 Release Announcement". Tcl Developer Xchange. 18 September 2013. Retrieved 1 July 2014.
  10. ^ "Tcl/Tk 8.6 Release Announcement". Tcl Developer Xchange. 20 September 2013. Retrieved 1 July 2014.
  11. ^ Ousterhout, John. "History of Tcl". Tcl Developer Exchange. Retrieved 1 April 2010.
  12. ^ "Tk Backgrounder". TkDocs. Retrieved 4 November 2016.
  13. ^ "John K Ousterhout - Award Winner". ACM Awards. Retrieved 4 November 2016.
  14. ^ "TIP #48: Tk Widget Styling Support". Tcl Developer Xchange. Retrieved 1 November 2016.
  15. ^ "treeview". Tcler's Wiki. Retrieved 1 November 2016.
  16. ^ "TIP #319: Implement Backwards Compatibility for ttk Themed Widgets in tk Widgets". Tcl Developer Xchange. Retrieved 1 November 2016.
  17. ^ "wish manual page - Tk Applications". Tcl Developer Xchange. Retrieved 1 November 2016.
  18. ^ "How to Compile Tcl". Tcl Developer Xchange. Retrieved 1 November 2016.
  19. ^ "ttk::widget manual page - Tk Themed Widget". Tcl Developer Xchange. Retrieved 1 November 2016.
  20. ^ "option manual page - Built-In Commands". Tcl Developer Xchange. Retrieved 1 November 2016.
  21. ^ "Languages with a Tk binding". Tcler's Wiki. Retrieved 1 July 2014.
  22. ^ "TASH". SourceForge. Retrieved 1 July 2014.
  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 개념, Perl/Tk 마스터링 1장, ISBN 978-1565927162
  26. ^ Tkinter, 바쁜 Python 개발자를 위한 현대 Tkinter 2.4장, ASIN B0071QDNLO
  27. ^ "Tk Commands, version 8.6.6". Tcl Developer Xchange. Retrieved 1 November 2016.
  28. ^ Widgets', Tcl 및 Tk Toolkit, ISBN 978-032133633017.2장
  29. ^ ISBN 978-0321336330, Tcl 및 Tk Toolkit 17.6장

추가 정보

외부 링크