# 25. User Interfaces Grafis dengan Tk

Tk/Tcl telah menjadi bagian yang tidak terpisahkan dari of Python. Ia menyediakan windowing toolkit yang handal dan platform independen, yang tersedia untuk para programmer Python dalam package `tkinter`, dan ekstensinya, modul `tkinter.tix` dan `tkinter.ttk`.

Paket `tkinter` adalah lapisan tipis berorientasi objek di atas Tcl/Tk. Untuk menggunakan `tkinter`, Anda tidak perlu menulis kode Tcl, tetapi Anda perlu membaca dokumentasi Tk, dan terkadang dokumentasi Tcl. `tkinter` adalah satu set pembungkus yang mengimplementasikan widget Tk sebagai kelas Python. Selain itu, modul internal `_tkinter` menyediakan mekanisme threadsafe yang memungkinkan Python dan Tcl berinteraksi.

Keutamaan `tkinter` adalah cepat, dan biasanya dibundel dengan Python. Meskipun dokumentasi standarnya kurang, namun tersedia materi yang baik, yang meliputi: referensi, tutorial, buku dan lain-lain. `tkinter` juga terkenal memiliki tampilan dan nuansa yang ketinggalan jaman, yang telah jauh ditingkatkan di Tk 8.5. Namun demikian, ada banyak pustaka GUI lain yang mungkin Anda minati. Untuk informasi lebih lanjut tentang alternatif, lihat bagian Other Graphical User Interface Packages.

- 25.1. `tkinter` --- Python interface to Tcl/Tk
  - 25.1.1. Tkinter Modules
  - 25.1.2. Tkinter Life Preserver
    - 25.1.2.1. How To Use This Section
    - 25.1.2.2. A Simple Hello World Program
  - 25.1.3. A (Very) Quick Look at Tcl/Tk
  - 25.1.4. Mapping Basic Tk into Tkinter
  - 25.1.5. How Tk and Tkinter are Related
  - 25.1.6. Handy Reference
    - 25.1.6.1. Setting Options
    - 25.1.6.2. The Packer
    - 25.1.6.3. Packer Options
    - 25.1.6.4. Coupling Widget Variables
    - 25.1.6.5. The Window Manager
    - 25.1.6.6. Tk Option Data Types
    - 25.1.6.7. Bindings and Events
    - 25.1.6.8. The index Parameter
    - 25.1.6.9. Images
  - 25.1.7. File Handlers
- 25.2. `tkinter.ttk` --- Tk themed widgets
  - 25.2.1. Menggunakan Ttk
  - 25.2.2. Ttk Widgets
  - 25.2.3. Widget
    - 25.2.3.1. Opsi Standar
    - 25.2.3.2. Scrollable Widget Options
    - 25.2.3.3. Label Options
    - 25.2.3.4. Compatibility Options
    - 25.2.3.5. Widget States
    - 25.2.3.6. ttk.Widget
  - 25.2.4. Combobox
    - 25.2.4.1. Opsi
    - 25.2.4.2. Virtual events
    - 25.2.4.3. ttk.Combobox
  - 25.2.5. Notebook
    - 25.2.5.1. Opsi
    - 25.2.5.2. Tab Options
    - 25.2.5.3. Tab Identifiers
    - 25.2.5.4. Virtual Events
    - 25.2.5.5. ttk.Notebook
  - 25.2.6. Progressbar
    - 25.2.6.1. Opsi
    - 25.2.6.2. ttk.Progressbar
  - 25.2.7. Pembatas
    - 25.2.7.1. Opsi
  - 25.2.8. Sizegrip
    - 25.2.8.1. Platform-specific notes
    - 25.2.8.2. Bug
  - 25.2.9. Treeview
    - 25.2.9.1. Opsi
    - 25.2.9.2. Item Options
    - 25.2.9.3. Tag Options
    - 25.2.9.4. Column Identifiers
    - 25.2.9.5. Virtual Events
    - 25.2.9.6. ttk.Treeview
  - 25.2.10. Ttk Styling
    - 25.2.10.1. Tata ruang
- 25.3. `tkinter.tix` --- Extension widgets for Tk
  - 25.3.1. Using Tix
  - 25.3.2. Tix Widgets
    - 25.3.2.1. Basic Widgets
    - 25.3.2.2. File Selectors
    - 25.3.2.3. Hierarchical ListBox
    - 25.3.2.4. Tabular ListBox
    - 25.3.2.5. Manager Widgets
    - 25.3.2.6. Image Types
    - 25.3.2.7. Miscellaneous Widgets
    - 25.3.2.8. Form Geometry Manager
  - 25.3.3. Tix Commands
- 25.4. `tkinter.scrolledtext` --- Scrolled Text Widget
- 25.5. IDLE
  - 25.5.1. Menus
    - 25.5.1.1. File menu (Shell and Editor)
    - 25.5.1.2. Edit menu (Shell and Editor)
    - 25.5.1.3. Format menu (Editor window only)
    - 25.5.1.4. Run menu (Editor window only)
    - 25.5.1.5. Shell menu (Shell window only)
    - 25.5.1.6. Debug menu (Shell window only)
    - 25.5.1.7. Options menu (Shell and Editor)
    - 25.5.1.8. Window menu (Shell and Editor)
    - 25.5.1.9. Help menu (Shell and Editor)
    - 25.5.1.10. Context Menus
  - 25.5.2. Editing and navigation
    - 25.5.2.1. Editor windows
    - 25.5.2.2. Key bindings
    - 25.5.2.3. Automatic indentation
    - 25.5.2.4. Completions
    - 25.5.2.5. Calltips
    - 25.5.2.6. Python Shell window
    - 25.5.2.7. Text colors
  - 25.5.3. Startup and code execution
    - 25.5.3.1. Command line usage
    - 25.5.3.2. Startup failure
    - 25.5.3.3. Running user code
    - 25.5.3.4. User output in Shell
    - 25.5.3.5. Developing tkinter applications
    - 25.5.3.6. Running without a subprocess
  - 25.5.4. Help and preferences
    - 25.5.4.1. Help sources
    - 25.5.4.2. Setting preferences
    - 25.5.4.3. IDLE on macOS
    - 25.5.4.4. Extensions
- 25.6. Other Graphical User Interface Packages