
- Python基礎
- Python - 首頁
- Python - 概述
- Python - 歷史
- Python - 特性
- Python vs C++
- Python - Hello World程式
- Python - 應用領域
- Python - 直譯器
- Python - 環境搭建
- Python - 虛擬環境
- Python - 基本語法
- Python - 變數
- Python - 資料型別
- Python - 型別轉換
- Python - Unicode系統
- Python - 字面量
- Python - 運算子
- Python - 算術運算子
- Python - 比較運算子
- Python - 賦值運算子
- Python - 邏輯運算子
- Python - 位運算子
- Python - 成員運算子
- Python - 身份運算子
- Python - 運算子優先順序
- Python - 註釋
- Python - 使用者輸入
- Python - 數字
- Python - 布林值
- Python控制語句
- Python - 控制流
- Python - 決策
- Python - if語句
- Python - if else
- Python - 巢狀if
- Python - match-case語句
- Python - 迴圈
- Python - for迴圈
- Python - for-else迴圈
- Python - while迴圈
- Python - break語句
- Python - continue語句
- Python - pass語句
- Python - 巢狀迴圈
- Python函式與模組
- Python - 函式
- Python - 預設引數
- Python - 關鍵字引數
- Python - 僅限關鍵字引數
- Python - 位置引數
- Python - 僅限位置引數
- Python - 可變引數
- Python - 變數作用域
- Python - 函式註解
- Python - 模組
- Python - 內建函式
- Python字串
- Python - 字串
- Python - 字串切片
- Python - 修改字串
- Python - 字串連線
- Python - 字串格式化
- Python - 跳脫字元
- Python - 字串方法
- Python - 字串練習
- Python列表
- Python - 列表
- Python - 訪問列表元素
- Python - 修改列表元素
- Python - 新增列表元素
- Python - 刪除列表元素
- Python - 迴圈遍歷列表
- Python - 列表推導式
- Python - 排序列表
- Python - 複製列表
- Python - 合併列表
- Python - 列表方法
- Python - 列表練習
- Python元組
- Python - 元組
- Python - 訪問元組元素
- Python - 更新元組
- Python - 解包元組
- Python - 迴圈遍歷元組
- Python - 合併元組
- Python - 元組方法
- Python - 元組練習
- Python集合
- Python - 集合
- Python - 訪問集合元素
- Python - 新增集合元素
- Python - 刪除集合元素
- Python - 迴圈遍歷集合
- Python - 合併集合
- Python - 複製集合
- Python - 集合運算子
- Python - 集合方法
- Python - 集合練習
- Python字典
- Python - 字典
- Python - 訪問字典元素
- Python - 修改字典元素
- Python - 新增字典元素
- Python - 刪除字典元素
- Python - 字典檢視物件
- Python - 迴圈遍歷字典
- Python - 複製字典
- Python - 巢狀字典
- Python - 字典方法
- Python - 字典練習
- Python陣列
- Python - 陣列
- Python - 訪問陣列元素
- Python - 新增陣列元素
- Python - 刪除陣列元素
- Python - 迴圈遍歷陣列
- Python - 複製陣列
- Python - 反轉陣列
- Python - 排序陣列
- Python - 合併陣列
- Python - 陣列方法
- Python - 陣列練習
- Python檔案處理
- Python - 檔案處理
- Python - 寫入檔案
- Python - 讀取檔案
- Python - 檔案重新命名和刪除
- Python - 目錄
- Python - 檔案方法
- Python - OS檔案/目錄方法
- Python - OS路徑方法
- 面向物件程式設計
- Python - OOPs概念
- Python - 類與物件
- Python - 類屬性
- Python - 類方法
- Python - 靜態方法
- Python - 建構函式
- Python - 訪問修飾符
- Python - 繼承
- Python - 多型
- Python - 方法重寫
- Python - 方法過載
- Python - 動態繫結
- Python - 動態型別
- Python - 抽象
- Python - 封裝
- Python - 介面
- Python - 包
- Python - 內部類
- Python - 匿名類和物件
- Python - 單例類
- Python - 包裝類
- Python - 列舉
- Python - 反射
- Python錯誤與異常
- Python - 語法錯誤
- Python - 異常
- Python - try-except塊
- Python - try-finally塊
- Python - 丟擲異常
- Python - 異常鏈
- Python - 巢狀try塊
- Python - 使用者自定義異常
- Python - 日誌記錄
- Python - 斷言
- Python - 內建異常
- Python多執行緒
- Python - 多執行緒
- Python - 執行緒生命週期
- Python - 建立執行緒
- Python - 啟動執行緒
- Python - 加入執行緒
- Python - 執行緒命名
- Python - 執行緒排程
- Python - 執行緒池
- Python - 主執行緒
- Python - 執行緒優先順序
- Python - 守護執行緒
- Python - 執行緒同步
- Python同步
- Python - 執行緒間通訊
- Python - 執行緒死鎖
- Python - 中斷執行緒
- Python網路程式設計
- Python - 網路程式設計
- Python - 套接字程式設計
- Python - URL處理
- Python - 泛型
- Python庫
- NumPy教程
- Pandas教程
- SciPy教程
- Matplotlib教程
- Django教程
- OpenCV教程
- Python雜項
- Python - 日期與時間
- Python - 數學
- Python - 迭代器
- Python - 生成器
- Python - 閉包
- Python - 裝飾器
- Python - 遞迴
- Python - 正則表示式
- Python - PIP
- Python - 資料庫訪問
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 輸出格式化
- Python - 效能測量
- Python - 資料壓縮
- Python - CGI程式設計
- Python - XML處理
- Python - GUI程式設計
- Python - 命令列引數
- Python - 文件字串
- Python - JSON
- Python - 傳送郵件
- Python - 擴充套件
- Python - 工具/實用程式
- Python - GUIs
- Python高階概念
- Python - 抽象基類
- Python - 自定義異常
- Python - 高階函式
- Python - 物件內部
- Python - 記憶體管理
- Python - 元類
- Python - 使用元類進行超程式設計
- Python - 模擬和存根
- Python - Monkey Patching
- Python - 訊號處理
- Python - 型別提示
- Python - 自動化教程
- Python - Humanize包
- Python - 上下文管理器
- Python - 協程
- Python - 描述符
- Python - 診斷和修復記憶體洩漏
- Python - 不可變資料結構
- Python實用資源
- Python - 問答
- Python - 線上測試
- Python - 快速指南
- Python - 參考
- Python - 速查表
- Python - 專案
- Python - 實用資源
- Python - 討論
- Python編譯器
- NumPy編譯器
- Matplotlib編譯器
- SciPy編譯器
Python - GUI程式設計
Python 提供了多種開發圖形使用者介面 (GUI) 的選項。最重要的特性如下所示。
Tkinter − Tkinter 是 Python 與 Python 自帶的 Tk GUI 工具包的介面。我們將在本章中介紹此選項。
wxPython − 這是一個用於 wxWidgets GUI 工具包的開源 Python 介面。您可以在此處找到關於 WxPython 的完整教程 這裡。
PyQt − 這也是一個用於流行的跨平臺 Qt GUI 庫的 Python 介面。TutorialsPoint 有一個關於 PyQt5 的非常好的教程 這裡。
PyGTK − PyGTK 是一組用 Python 和 C 編寫的 GTK + GUI 庫的包裝器。完整的 PyGTK 教程可在 這裡找到。
PySimpleGUI − PySimpleGUI 是一個開源的跨平臺 Python GUI 庫。它旨在為基於 Python 的 Tkinter、PySide 和 WxPython 工具包建立桌面 GUI 提供統一的 API。有關詳細的 PySimpleGUI 教程,請點選 這裡。
Pygame − Pygame 是一個流行的 Python 庫,用於開發影片遊戲。它是一個免費的、開源的、跨平臺的 Simple DirectMedia Library (SDL) 包裝器。有關 Pygame 的全面教程,請訪問 這個連結。
Jython − Jython 是一個針對 Java 的 Python 移植版本,它使 Python 指令碼可以無縫訪問本地計算機上的 Java 類庫 //www.jython.org。
還有許多其他可用的介面,您可以在網上找到它們。
Tkinter程式設計
Tkinter 是 Python 的標準 GUI 庫。Python 與 Tkinter 結合使用,提供了一種快速簡便的建立 GUI 應用程式的方法。Tkinter 為 Tk GUI 工具包提供了一個強大的面向物件介面。
tkinter 包包含以下模組:
Tkinter − 主要 Tkinter 模組。
tkinter.colorchooser − 用於讓使用者選擇顏色的對話方塊。
tkinter.commondialog − 此處列出的其他模組中定義的對話方塊的基類。
tkinter.filedialog − 常用對話方塊,允許使用者指定要開啟或儲存的檔案。
tkinter.font − 用於幫助處理字型的實用程式。
tkinter.messagebox − 訪問標準 Tk 對話方塊。
tkinter.scrolledtext − 帶有內建垂直捲軸的文字小部件。
tkinter.simpledialog − 基本對話方塊和便捷函式。
tkinter.ttk − Tk 8.5 中引入的主題部件集,為主 tkinter 模組中的許多經典部件提供了現代替代方案。
使用 Tkinter 建立 GUI 應用程式是一項簡單的任務。您只需執行以下步驟。
匯入 Tkinter 模組。
建立 GUI 應用程式主視窗。
向 GUI 應用程式新增一個或多個上述部件。
進入主事件迴圈以針對使用者觸發的每個事件採取行動。
示例
# note that module name has changed from Tkinter in Python 2 # to tkinter in Python 3 import tkinter top = tkinter.Tk() # Code to add widgets will go here... top.mainloop()
這將建立一個如下視窗:

當程式變得更復雜時,使用面向物件程式設計方法可以使程式碼更有條理。
import tkinter as tk class App(tk.Tk): def __init__(self): super().__init__() app = App() app.mainloop()
Tkinter 部件
Tkinter 提供各種控制元件,例如 GUI 應用程式中使用的按鈕、標籤和文字框。這些控制元件通常稱為部件。
Tkinter 目前有 15 種類型的部件。我們在下表中介紹這些部件以及簡要說明:
序號 | 運算子和描述 |
---|---|
1 |
按鈕 (Button)
Button 部件用於在應用程式中顯示按鈕。 |
2 |
畫布 (Canvas)
Canvas 部件用於在應用程式中繪製形狀,例如線條、橢圓、多邊形和矩形。 |
3 |
複選框 (Checkbutton)
Checkbutton 部件用於將多個選項顯示為複選框。使用者可以一次選擇多個選項。 |
4 |
輸入框 (Entry)
Entry 部件用於顯示單行文字欄位,用於接受使用者的輸入值。 |
5 |
框架 (Frame)
Frame 部件用作容器部件來組織其他部件。 |
6 |
標籤 (Label)
Label 部件用於為其他部件提供單行標題。它還可以包含影像。 |
7 |
列表框 (Listbox)
Listbox 部件用於向用戶提供選項列表。 |
8 |
選單按鈕 (Menubutton)
Menubutton 部件用於在應用程式中顯示選單。 |
9 |
選單 (Menu)
Menu 部件用於向用戶提供各種命令。這些命令包含在 Menubutton 中。 |
10 |
訊息 (Message)
Message 部件用於顯示多行文字欄位,用於接受使用者的輸入值。 |
11 |
單選按鈕 (Radiobutton)
Radiobutton 部件用於將多個選項顯示為單選按鈕。使用者一次只能選擇一個選項。 |
12 |
滑塊 (Scale)
Scale 部件用於提供滑塊部件。 |
13 |
捲軸 (Scrollbar)
Scrollbar 部件用於向各種部件(例如列表框)新增滾動功能。 |
14 |
文字 (Text)
Text 部件用於顯示多行文字。 |
15 |
頂級視窗 (Toplevel)
Toplevel 部件用於提供單獨的視窗容器。 |
16 |
旋轉框 (Spinbox)
Spinbox 部件是標準 Tkinter Entry 部件的一種變體,可用於從固定數量的值中進行選擇。 |
17 |
窗格視窗 (PanedWindow)
PanedWindow 是一個容器部件,可以包含任意數量的窗格,這些窗格水平或垂直排列。 |
18 |
標籤框架 (LabelFrame)
標籤框架是一個簡單的容器部件。其主要目的是充當複雜窗口布局的間隔符或容器。 |
19 |
tkMessageBox
此模組用於在應用程式中顯示訊息框。 |
讓我們詳細研究這些部件。
標準屬性
讓我們看看如何指定一些常見屬性,例如大小、顏色和字型。
讓我們簡要地研究一下它們:
幾何管理
所有 Tkinter 部件都可以訪問特定的幾何管理方法,這些方法的目的是在父部件區域內組織部件。Tkinter 公開了以下幾何管理器類:pack、grid 和 place。
pack() 方法 − 此幾何管理器在將部件放置到父部件之前,將部件組織成塊。
grid() 方法 − 此幾何管理器以表格狀結構在父部件中組織部件。
place() 方法 − 此幾何管理器透過將部件放置在父部件中的特定位置來組織部件。
讓我們簡要地研究一下幾何管理方法:
簡單對話方塊 (SimpleDialog)
tkinter 包中的 simpledialog 模組包括一個對話方塊類和便捷函式,用於透過模式對話方塊接受使用者輸入。它包含一個標籤、一個輸入部件和兩個按鈕“確定”和“取消”。這些函式是:
askfloat(title, prompt, **kw) − 接受浮點數。
askinteger(title, prompt, **kw) − 接受整數輸入。
askstring(title, prompt, **kw) − 接受使用者的文字輸入。
以上三個函式提供對話方塊,提示使用者輸入所需型別的數值。如果按下“確定”,則返回輸入;如果按下“取消”,則返回 None。
askinteger
from tkinter.simpledialog import askinteger from tkinter import * from tkinter import messagebox top = Tk() top.geometry("100x100") def show(): num = askinteger("Input", "Input an Integer") print(num) B = Button(top, text ="Click", command = show) B.place(x=50,y=50) top.mainloop()
它將產生以下輸出:

askfloat
from tkinter.simpledialog import askfloat from tkinter import * top = Tk() top.geometry("100x100") def show(): num = askfloat("Input", "Input a floating point number") print(num) B = Button(top, text ="Click", command = show) B.place(x=50,y=50) top.mainloop()
它將產生以下輸出:

askstring
from tkinter.simpledialog import askstring from tkinter import * top = Tk() top.geometry("100x100") def show(): name = askstring("Input", "Enter you name") print(name) B = Button(top, text ="Click", command = show) B.place(x=50,y=50) top.mainloop()
它將產生以下輸出:

檔案對話方塊模組 (FileDialog Module)
Tkinter 包中的 filedialog 模組包括一個 FileDialog 類。它還定義了便捷函式,使使用者能夠執行開啟檔案、儲存檔案和開啟目錄活動。
- filedialog.asksaveasfilename()
- filedialog.asksaveasfile()
- filedialog.askopenfilename()
- filedialog.askopenfile()
- filedialog.askdirectory()
- filedialog.askopenfilenames()
- filedialog.askopenfiles()
askopenfile
此函式允許使用者從檔案系統中選擇所需的檔案。檔案對話方塊視窗具有“開啟”和“取消”按鈕。按下“確定”時返回檔名及其路徑;如果按下“取消”,則返回 None。
from tkinter.filedialog import askopenfile from tkinter import * top = Tk() top.geometry("100x100") def show(): filename = askopenfile() print(filename) B = Button(top, text ="Click", command = show) B.place(x=50,y=50) top.mainloop()
它將產生以下輸出:

顏色選擇器 (ColorChooser)
tkinter 包中包含的 colorchooser 模組具有允許使用者透過顏色對話方塊選擇所需顏色物件的功能。askcolor() 函式顯示顏色對話方塊,其中包含預定義的顏色樣本以及透過設定 RGB 值來選擇自定義顏色的功能。該對話方塊返回所選顏色的 RGB 值元組及其十六進位制值。
from tkinter.colorchooser import askcolor from tkinter import * top = Tk() top.geometry("100x100") def show(): color = askcolor() print(color) B = Button(top, text ="Click", command = show) B.place(x=50,y=50) top.mainloop()
它將產生以下輸出:

((0, 255, 0), '#00ff00')
ttk 模組
ttk 代表 Tk 主題部件。ttk 模組從 Tk 8.5 開始引入。它提供了額外的優勢,包括在 X11 下的反鋸齒字型渲染和視窗透明度。它為 Tkinter 提供了主題和樣式支援。
ttk 模組捆綁了 18 個部件,其中 12 個已存在於 Tkinter 中。匯入 ttk 會使用新的部件覆蓋這些部件,這些部件旨在在所有平臺上都具有更好、更現代的外觀。
ttk 中的 6 個新部件是:組合框 (Combobox)、分隔符 (Separator)、大小調整手柄 (Sizegrip)、樹形檢視 (Treeview)、筆記本 (Notebook) 和進度條 (ProgressBar)。
要覆蓋基本的 Tk 部件,匯入應遵循 Tk 匯入:
from tkinter import * from tkinter.ttk import *
原始 Tk 部件將自動被 tkinter.ttk 部件替換。它們是:按鈕 (Button)、複選框 (Checkbutton)、輸入框 (Entry)、框架 (Frame)、標籤 (Label)、標籤框架 (LabelFrame)、選單按鈕 (Menubutton)、窗格視窗 (PanedWindow)、單選按鈕 (Radiobutton)、滑塊 (Scale) 和捲軸 (Scrollbar)。
新的部件提供了跨平臺更好的外觀和感覺;但是,替換部件並不完全相容。主要區別在於,諸如“fg”、“bg”以及其他與部件樣式相關的部件選項不再存在於 Ttk 部件中。改為使用 ttk.Style 類以獲得改進的樣式效果。
ttk 模組中的新部件是:
筆記本 (Notebook) − 此部件管理一系列“選項卡”,您可以在這些選項卡之間切換,從而更改當前顯示的視窗。
進度條 (ProgressBar) − 此部件用於透過使用動畫顯示進度或載入過程。
分隔符 (Separator) − 使用分隔線分隔不同的部件。
樹形檢視 (Treeview) − 此部件用於將專案組合成樹狀層次結構。每個專案都有一個文字標籤、一個可選影像和一個可選資料值列表。
組合框 (ComboBox) − 用於建立一個下拉選項列表,使用者可以從中選擇一個選項。
大小調整手柄 (Sizegrip) − 在螢幕的右下角建立一個小的控制代碼,可用於調整視窗大小。
組合框部件 (Combobox Widget)
Python ttk 組合框顯示下拉選項列表,並一次顯示一個選項。它是 Entry 部件的子類。因此,它繼承了 Entry 類的許多選項和方法。
語法
from tkinter import ttk Combo = ttk.Combobox(master, values.......)
get() 函式用於檢索組合框的當前值。
示例
from tkinter import * from tkinter import ttk top = Tk() top.geometry("200x150") frame = Frame(top) frame.pack() langs = ["C", "C++", "Java", "Python", "PHP"] Combo = ttk.Combobox(frame, values = langs) Combo.set("Pick an Option") Combo.pack(padx = 5, pady = 5) top.mainloop()
它將產生以下輸出:

進度條 (Progressbar)
ttk ProgressBar 部件及其如何用於建立載入螢幕或顯示當前任務的進度。
語法
ttk.Progressbar(parent, orient, length, mode)
引數
父容器 (Parent) − 將放置 ProgressBar 的容器,例如 root 或 Tkinter 框架。
方向 (Orient) − 定義 ProgressBar 的方向,可以是垂直或水平。
長度 (Length) − 透過採用整數值來定義 ProgressBar 的寬度。
模式 (Mode) − 此引數有兩個選項:確定性 (determinate) 和不確定性 (indeterminate)。
示例
下面給出的程式碼建立了一個帶有三個按鈕的進度條,這些按鈕連結到三個不同的函式。
第一個函式將進度條中的“值”或“進度”遞增 20。這是使用 step() 函式完成的,該函式採用整數值來更改進度量。(預設為 1.0)
第二個函式將進度條中的“值”或“進度”遞減 20。
第三個函式打印出進度條中的當前進度級別。
import tkinter as tk from tkinter import ttk root = tk.Tk() frame= ttk.Frame(root) def increment(): progressBar.step(20) def decrement(): progressBar.step(-20) def display(): print(progressBar["value"]) progressBar= ttk.Progressbar(frame, mode='determinate') progressBar.pack(padx = 10, pady = 10) button= ttk.Button(frame, text= "Increase", command= increment) button.pack(padx = 10, pady = 10, side = tk.LEFT) button= ttk.Button(frame, text= "Decrease", command= decrement) button.pack(padx = 10, pady = 10, side = tk.LEFT) button= ttk.Button(frame, text= "Display", command= display) button.pack(padx = 10, pady = 10, side = tk.LEFT) frame.pack(padx = 5, pady = 5) root.mainloop()
它將產生以下輸出:

筆記本 (Notebook)
Tkinter ttk 模組有一個新的有用部件,稱為 Notebook。它是一組容器(例如框架),其中包含許多部件作為子部件。
每個“選項卡”或“視窗”都有一個與其關聯的選項卡 ID,用於確定要切換到哪個選項卡。
您可以像在普通文字編輯器中一樣在這些容器之間切換。
語法
notebook = ttk.Notebook(master, *options)
示例
本例將透過兩種不同的方法向我們的 Notebook 小部件新增 3 個視窗。第一種方法使用 `add()` 函式,它簡單地將新標籤新增到末尾。另一種方法是 `insert()` 函式,它可以用於將標籤新增到特定位置。
`add()` 函式接受一個必需引數,即要新增的容器小部件,其餘引數是可選引數,例如 text(顯示為標籤標題的文字)、image 和 compound。
`insert()` 函式需要一個 `tab_id`,它定義了應插入的位置。`tab_id` 可以是索引值,也可以是字串字面量,例如 "end",這將將其新增到末尾。
import tkinter as tk from tkinter import ttk root = tk.Tk() nb = ttk.Notebook(root) # Frame 1 and 2 frame1 = ttk.Frame(nb) frame2 = ttk.Frame(nb) label1 = ttk.Label(frame1, text = "This is Window One") label1.pack(pady = 50, padx = 20) label2 = ttk.Label(frame2, text = "This is Window Two") label2.pack(pady = 50, padx = 20) frame1.pack(fill= tk.BOTH, expand=True) frame2.pack(fill= tk.BOTH, expand=True) nb.add(frame1, text = "Window 1") nb.add(frame2, text = "Window 2") frame3 = ttk.Frame(nb) label3 = ttk.Label(frame3, text = "This is Window Three") label3.pack(pady = 50, padx = 20) frame3.pack(fill= tk.BOTH, expand=True) nb.insert("end", frame3, text = "Window 3") nb.pack(padx = 5, pady = 5, expand = True) root.mainloop()
它將產生以下輸出:

樹狀檢視 (Treeview)
Treeview 小部件用於以表格或分層方式顯示專案。它支援建立專案的行和列等功能,並允許專案具有子項,從而形成分層格式。
語法
tree = ttk.Treeview(container, **options)
選項
序號 | 選項 & 說明 |
---|---|
1 | columns 列名稱列表 |
2 | displaycolumns 列識別符號列表(符號或整數索引),指定顯示哪些資料列以及它們的顯示順序,或者字串 "#all"。 |
3 | height 可見行數。 |
4 | padding 指定小部件的內部填充。可以是整數或包含 4 個值的列表。 |
5 | selectmode “extended”、“browse”或“none”之一。如果設定為“extended”(預設值),則可以選擇多個專案。如果為“browse”,則一次只能選擇一個專案。如果為“none”,則使用者無法更改選擇。 |
6 | show 包含零個或多個以下值的列表,指定要顯示的樹的哪些元素。預設值為“tree headings”,即顯示所有元素。 |
示例
在本例中,我們將建立一個簡單的 Treeview ttk 小部件,並向其中填充一些資料。我們已經將一些資料儲存在一個列表中,這些資料將在我們的 `read_data()` 函式中讀取並新增到 Treeview 小部件。
我們首先需要定義一個列名稱的列表/元組。我們省略了“Name”列,因為已經存在一個名稱為空的(預設)列。
然後,我們將該列表/元組賦給 Treeview 中的 columns 選項,然後定義“headings”,其中 column 是實際的列,而 heading 只是顯示小部件時顯示的列標題。我們為每個列指定一個名稱。“#0”是預設列的名稱。
`tree.insert()` 函式具有以下引數:
Parent − 如果沒有父項,則留空字串。
Position − 我們想要新增新專案的位置。要追加,請使用 `tk.END`。
Iid − 專案 ID,用於稍後跟蹤相關的專案。
Text − 我們將為其分配列表中的第一個值(名稱)。
我們將把從列表中獲得的其他兩個值作為 Value 傳遞。
完整程式碼
import tkinter as tk import tkinter.ttk as ttk from tkinter import simpledialog root = tk.Tk() data = [ ["Bobby",26,20000], ["Harrish",31,23000], ["Jaya",18,19000], ["Mark",22, 20500], ] index=0 def read_data(): for index, line in enumerate(data): tree.insert('', tk.END, iid = index, text = line[0], values = line[1:]) columns = ("age", "salary") tree= ttk.Treeview(root, columns=columns ,height = 20) tree.pack(padx = 5, pady = 5) tree.heading('#0', text='Name') tree.heading('age', text='Age') tree.heading('salary', text='Salary') read_data() root.mainloop()
它將產生以下輸出:

尺寸控制柄 (Sizegrip)
Sizegrip 小部件基本上是一個小的箭頭狀控制柄,通常放置在螢幕的右下角。在螢幕上拖動 Sizegrip 也會調整其附加到的容器的大小。
語法
sizegrip = ttk.Sizegrip(parent, **options)
示例
import tkinter as tk import tkinter.ttk as ttk root = tk.Tk() root.geometry("100x100") frame = ttk.Frame(root) label = ttk.Label(root, text = "Hello World") label.pack(padx = 5, pady = 5) sizegrip = ttk.Sizegrip(frame) sizegrip.pack(expand = True, fill = tk.BOTH, anchor = tk.SE) frame.pack(padx = 10, pady = 10, expand = True, fill = tk.BOTH) root.mainloop()
它將產生以下輸出:

分隔符 (Separator)
ttk Separator 小部件是一個非常簡單的小部件,只有一個用途,那就是透過在小部件之間繪製一條線來幫助將小部件“分隔”成組/分割槽。我們可以更改此線(分隔符)的方向為水平或垂直,並更改其長度/高度。
語法
separator = ttk.Separator(parent, **options)
“orient”可以是 `tk.VERTICAL` 或 `tk.HORIZONTAL`,分別表示垂直和水平分隔符。
示例
這裡我們建立了兩個 Label 小部件,然後在它們之間建立了一個水平分隔符。
import tkinter as tk import tkinter.ttk as ttk root = tk.Tk() root.geometry("200x150") frame = ttk.Frame(root) label = ttk.Label(frame, text = "Hello World") label.pack(padx = 5) separator = ttk.Separator(frame,orient= tk.HORIZONTAL) separator.pack(expand = True, fill = tk.X) label = ttk.Label(frame, text = "Welcome To TutorialsPoint") label.pack(padx = 5) frame.pack(padx = 10, pady = 50, expand = True, fill = tk.BOTH) root.mainloop()
它將產生以下輸出:
