땡땡이

Tkinter

TkinterTk GUI 툴킷에 대한 Python 바인딩입니다.이것은 Tk GUI [1]툴킷에 대한 표준 Python 인터페이스이며 Python의 사실상의 표준 [2]GUI입니다.Tkinter는 Linux, Microsoft Windows 및 MacOS의 표준 Python 설치에 포함되어 있습니다.

Tkinter라는 이름은 Tk 인터페이스에서 유래합니다.Tkinter는 Steen LumholtGuido van Rossum에 [3]의해 쓰여졌고, 그 후 Fredrik Lundh에 [4]의해 수정되었다.

Tkinter는 Python [5]라이선스로 출시된 무료 소프트웨어입니다.

묘사

다른 대부분의 현대 Tk 바인딩과 마찬가지로 Tkinter는 Python 인터프리터에 내장된 완전Tcl 인터프리터 주위에 Python 래퍼로 구현됩니다.Tkinter 콜은 Tcl 명령어로 변환되며, Tcl 명령어는 이 임베디드 인터프리터에 공급되므로 Python과 Tcl을 단일 응용 프로그램에서 혼재시킬 수 있습니다.

wxPython, PyQt, PySide, Pygame, PyGTK 등 일반적인 GUI 라이브러리의 몇 가지 대안이 있습니다.

일부 정의

창호

이 용어는 맥락에 따라 의미가 다르지만 일반적으로 사용자의 디스플레이 화면 어딘가에 있는 직사각형 영역을 가리킵니다.

최상위 창

프라이머리 창의 자녀로 기능하는 창입니다.데스크탑 매니저용 표준 프레임과 컨트롤로 장식됩니다.데스크톱에서 이동할 수 있으며 일반적으로 크기를 조정할 수 있습니다.

위젯

그래픽 사용자 인터페이스에서 응용 프로그램을 구성하는 구성 요소를 총칭합니다.

  • 핵심 위젯:컨테이너: 프레임, 레이블 프레임, 최상위 수준, 상하좌우 이동 창.버튼: 버튼, 라디오 버튼, 체크 버튼(체크박스) 및 메뉴버튼.텍스트 위젯: 라벨, 메시지, 텍스트.항목 위젯: 축척, 스크롤 막대, 목록 상자, 슬라이더, 스핀 상자, 항목(단일 줄), 옵션 메뉴, 텍스트(복수 줄) 및 캔버스(벡터 및 픽셀 그래픽)
  • Tkinter에는 팝업 대화상자를 표시할 수 있는 모듈이 3개 있습니다.tk.messagebox(확인, 정보, 경고 및 오류 대화상자), tk.filedialog(단일 파일, 여러 파일 및 디렉토리 선택 대화상자) 및 tk.colorchooser(컬러 선택 대화상자)입니다.
  • Python 2.7 및 Python 3.1은 Tk 8.[6][7]5의 "테마 Tk"("ttk") 기능을 통합합니다.이를 통해 Tk 위젯을 응용 프로그램이 실행되고 있는 네이티브 데스크톱 환경처럼 쉽게 테마화할 수 있으므로 Tk(Tkinter)에 대한 오랜 비판에 대처할 수 있습니다.콤보박스, 프로그레스바, 트리뷰, 노트북, 구분자, 크기그립 [8]등 일부 위젯은 ttk 전용입니다.

Tkinter에서 프레임 위젯은 복잡한 레이아웃의 기본 구성 단위입니다.프레임은 다른 위젯을 포함할 수 있는 직사각형 영역입니다.

자녀와 부모

위젯이 작성되면 부모-자녀 관계가 작성됩니다.예를 들어, 텍스트 레이블을 프레임 내부에 배치하면 프레임이 레이블의 부모입니다.

최소한의 응용 프로그램

다음은 하나의 [9]위젯을 갖춘 최소 Python 3 Tkinter 어플리케이션입니다.

#!/usr/bin/env python3 부터 키보드 수입품 * 뿌리 = Tk()        # 루트(베이스) 창 작성 w = 라벨.(뿌리, 본문="안녕, 세상아!")  # 단어가 포함된 레이블 만들기 w.포장하다()         # 라벨을 창문에 붙입니다. 뿌리.메인루프()       # 이벤트 루프를 시작합니다. 

Python 2의 경우 유일한 차이점은 import 명령어의 단어 "tkinter"가 "Tkinter"[10]로 대문자가 된다는 것입니다.

과정

위젯[11] 작성에는 네 가지 단계가 있습니다.

만들다
그것을 프레임 내에서 작성하다.
설정하다
위젯 속성을 변경합니다.
포장하다
눈에 띄도록 제자리에 고정시킵니다.개발자는 또한 .grid()(row=int, column=int를 사용하여 위젯을 배치할 행과 열을 정의하며 기본값은 0) 및 .place()(relx=int 또는 10진수, relax=int 또는 10진수, 프레임 또는 창에서 좌표를 정의)를 사용할 수도 있습니다.
바인드
기능 또는 이벤트에 바인드합니다.

압축되어 있는 경우가 많아 순서가 다를 수 있습니다.

심플한 응용 프로그램

Python에서 객체 지향 패러다임을 사용하면 다음과 같은 간단한 프로그램이 있습니다(기본적으로 MacOS에서 Python에 의해 사용되지 않는 Tcl 버전 8.6 필요).

#!/usr/bin/env python3 수입품 키보드 ~하듯이 tk   학급 어플(tk.):      방어하다 __init__(자신, 마스터.=없음.):         tk..__init__(자신, 마스터.)         자신.격자무늬()         자신.createWidgets()      방어하다 createWidgets(자신):         자신.medial Label(중간라벨) = tk.라벨.(자신, 본문='Hello World')         자신.medial Label(중간라벨).설정(bg="#00ffff")         자신.medial Label(중간라벨).격자무늬()         자신.quit 버튼 = tk.단추(자신, 본문='종료, 명령어=자신.멈춰)         자신.quit 버튼.격자무늬()   앱. = 어플() 앱..마스터..직함('샘플 어플리케이션') 앱..메인루프() 
  • 행 1: 프로그램 런처에 대한 해시방 지시. 자가 실행 [12]시 적절한 인터프리터 실행 파일을 선택할 수 있습니다.
  • line 2: tkinter 모듈을 프로그램 이름 공간에 가져오지만 이름을 tk로 변경합니다.
  • line 5: 응용 프로그램클래스는 Tkinter의 Frame 클래스에서 상속됩니다.
  • line 7: 프레임을 설정하는 기능을 정의합니다.
  • line 8: 부모 클래스의 컨스트럭터를 호출합니다.Frame
  • 행 12: 위젯 정의.
  • 13행: "Hello World"라는 텍스트가 포함된 MedialLabel이라는 레이블을 만듭니다.
  • line 14: Medial Label 배경색을 cyan으로 설정합니다.
  • 줄 15: 그리드 지오메트리 관리자 방법을 사용하여 볼 수 있도록 응용프로그램에 레이블을 배치합니다.
  • 16행: "종료"라는 레이블이 붙은 버튼을 만듭니다.
  • 줄 17: 응용 프로그램에 버튼을 배치합니다.그리드, 장소 및 팩은 모두 위젯을 표시하는 방법입니다.
  • 행 20:메인 프로그램은 여기서 어플리케이션클래스를 인스턴스화하는 것으로 시작합니다.
  • line 21: 이 메서드 호출은 창의 제목을 "Sample application"으로 설정합니다.
  • 22행: 마우스와 키보드의 이벤트를 기다리며 응용 프로그램의 메인 루프를 시작합니다.

레퍼런스

  1. ^ "Tkinter — Python interface to Tcl/Tk — Python v2.6.1 documentation". Retrieved 2009-03-12.
  2. ^ "Tkinter - Pythoninfo Wiki".
  3. ^ tkinter—Python interface to Tcl/Tk—Python 3.9.10 Documentation
  4. ^ Shipman, John W. (2010-12-12), Tkinter reference: a GUI for Python, New Mexico Tech Computer Center, retrieved 2012-01-11
  5. ^ "Archived copy". Archived from the original on 2013-11-13. Retrieved 2013-11-13.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  6. ^ "Python issue #2983, "Ttk support for Tkinter"".
  7. ^ "Python subversion revision 69051, which resolves issue #2983 by adding the ttk module".
  8. ^ "Tkinter ttk widgets - Python Tutorial". CodersLegacy. Retrieved 2022-01-13.
  9. ^ "Tkinter 8.5 reference: a GUI for Python".
  10. ^ Fleck, Dan. "Tkinter – GUIs in Python" (PDF). CS112. George Mason University. Retrieved 18 August 2018.
  11. ^ Klein, Bernd. "GUI Programming with Python: Events and Binds". www.python-course.eu. Retrieved 18 August 2018.
  12. ^ "PEP 397 — Python launcher for Windows — Python.org". Retrieved 2017-06-07.

외부 링크