TKinter是Python的標準GUI庫之一,它提供了創建GUI程序所需的所有基本控件,例如按鈕、標籤、文本框、下拉列表、滾動條等等。同時,TKinter還集成了幾個流行的GUI樣式,例如Windows、MacOS、Linux等。因此,使用Python和TKinter,我們可以輕鬆地構建功能強大的GUI應用程序。
一、基本控件
TKinter提供了很多基本控件來設計GUI,這些控件都非常方便,下面讓我們來看一下其中幾個主要的控件。
1、標籤(Label)
標籤是創建GUI窗體的基本構建塊之一。在Python中,我們可以通過標籤控件顯示文本或圖像。它是任何GUI的基本元素之一,也是TKinter中最易於使用和掌握的元素之一。
# 導入必要的包 import tkinter as tk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter標籤控件") # 創建標籤 label = tk.Label(window, text="歡迎來到TKinter的世界!", font=('Arial', 16)) # 將標籤放置在窗體中 label.pack() # 進入消息循環 window.mainloop()
2、按鈕(Button)
在大多數GUI應用程序中,按鈕被認為是核心元素之一。在Python中,我們可以使用Button控件創建按鈕。按鈕可以觸發用戶定義的事件,例如單擊或雙擊,這使得它成為交互式GUI設計中的核心元素之一。
# 導入必要的包 import tkinter as tk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter按鈕控件") # 定義按鈕事件 def on_click(): label.config(text="你已經單擊了按鈕。") # 創建標籤 label = tk.Label(window, text="單擊下面的按鈕!", font=('Arial', 20)) # 將標籤放置在窗體中 label.pack() # 創建按鈕 button = tk.Button(window, text='按鈕', bg='yellow', font=('Arial', 16), command=on_click) # 將按鈕放置在窗體中 button.pack() # 進入消息循環 window.mainloop()
3、文本框(Entry)
文本框也被稱為編輯框,允許用戶輸入或編輯文本。在Python TKinter中,我們可以使用Entry控件來創建文本框。
# 導入必要的包 import tkinter as tk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter文本框控件") # 創建標籤 label = tk.Label(window, text="請輸入您的姓名:", font=('Arial', 16)) # 將標籤放置在窗體中 label.pack() # 創建文本框 entry = tk.Entry(window, font=('Arial', 14)) entry.pack() # 定義按鈕事件 def on_click(): name = entry.get() label.config(text=f"歡迎您,{name}!") # 創建按鈕 button = tk.Button(window, text='提交', bg='yellow', font=('Arial', 16), command=on_click) # 將按鈕放置在窗體中 button.pack() # 進入消息循環 window.mainloop()
二、高級控件
除了基本控件之外,TKinter還提供了許多高級控件。這些控件在GUI設計中非常有用,下面我們將介紹一些常用的高級控件。
1、下拉列表(ComboBox)
下拉列表是一種常見的界面元素,它允許用戶從指定的一組選項中選擇項目。在Python的TKinter庫中,我們使用ComboBox控件創建下拉列表。
# 導入必要的包 import tkinter as tk from tkinter import ttk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter下拉列表控件") # 定義選項列表 options = ['Python', 'Java', 'C++', 'Ruby', 'PHP'] # 創建並放置標籤 label = tk.Label(window, text="請選擇您喜歡的編程語言:", font=('Arial', 16)) label.pack() # 創建下拉列表 combo = ttk.Combobox(window, values=options, font=('Arial', 14), state='readonly') combo.pack() # 定義提交事件 def on_click(): language = combo.get() label.config(text=f"您選擇了{language}.") # 創建提交按鈕 button = tk.Button(window, text='提交', bg='yellow', font=('Arial', 16), command=on_click) button.pack() # 進入消息循環 window.mainloop()
2、滾動條(Scrollbar)
滾動條是當內容超出容器尺寸並且無法顯示完整內容時,可以滾動內容以查看它的GUI控件。在Python的TKinter庫中,我們使用Scrollbar控件創建滾動條。
# 導入必要的包 import tkinter as tk from tkinter import ttk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter滾動條控件") # 創建滾動條 scrollbar = ttk.Scrollbar(window) scrollbar.pack(side='right', fill='y') # 創建文本框並關聯滾動條 text = tk.Text(window, yscrollcommand=scrollbar.set) text.pack(side='left', fill='both') # 添加文本 text.insert('end', 'Python是一種優秀的編程語言。' * 100) # 關聯文本框和滾動條 scrollbar.config(command=text.yview) # 進入消息循環 window.mainloop()
3、選項卡(Notebook)
選項卡是一種常見的GUI控件,用於組織應用程序中的數據或功能。在Python的TKinter庫中,我們使用Notebook控件創建選項卡。
# 導入必要的包 import tkinter as tk from tkinter import ttk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter選項卡控件") # 創建選項卡 tab_control = ttk.Notebook(window) tab1 = ttk.Frame(tab_control) tab2 = ttk.Frame(tab_control) tab_control.add(tab1, text='選項卡1') tab_control.add(tab2, text='選項卡2') tab_control.pack(expand=1, fill='both') # 在第一個選項卡中顯示文本 label1 = tk.Label(tab1, text="這是第一個選項卡", font=('Arial', 16)) label1.pack() # 在第二個選項卡中顯示文本 label2 = tk.Label(tab2, text="這是第二個選項卡", font=('Arial', 16)) label2.pack() # 進入消息循環 window.mainloop()
三、樣式設計
設計和布局一個好的GUI界面需要在樣式和布局方面投入相當的努力。在Python的TKinter庫中,我們可以使用多種方式來設計GUI的樣式。
1、標籤樣式設計
在Python TKinter中,我們可以使用Label控件改變標籤的前景色(foreground)和背景色(background)。另外,我們還可以使用font屬性定義其字體。
# 導入必要的包 import tkinter as tk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter樣式設計") # 創建標籤 label = tk.Label(window, text="我的標籤樣式非常酷!", font=('Arial', 16), fg='white', bg='blue') # 將標籤放置在窗體中 label.pack() # 進入消息循環 window.mainloop()
2、按鈕樣式設計
在Python的TKinter庫中,我們可以使用Button控件改變按鈕的前景色(foreground)和背景色(background)。此外,我們還可以使用font屬性定義其字體、relief屬性定義按鈕的凸起程度。
# 導入必要的包 import tkinter as tk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter樣式設計") # 定義按鈕事件 def on_click(): label.config(text="你點擊了按鈕!", fg='red', bg='yellow') # 創建標籤 label = tk.Label(window, text="點我查看樣式效果:", font=('Arial', 16)) # 將標籤放置在窗體中 label.pack() # 創建按鈕 button = tk.Button(window, text='樣式設計', font=('Arial', 16), bg='blue', fg='white', relief='groove', command=on_click) # 將按鈕放置在窗體中 button.pack() # 進入消息循環 window.mainloop()
3、布局管理器
Python TKinter提供了三種布局管理器,即pack()、grid()和place()。這些布局管理器之間具有不同的風格和屬性。在這裡,我們將介紹一些關鍵用法,以便更好地使用它們來設計GUI界面。
pack()布局管理器
pack()布局管理器是一種簡單且易於使用的布局管理器。它可以將窗口小部件放置在其父容器中。通過參數side可以控制小部件的位置(頂部、底部、左側或右側),而fill參數可以控制小部件如何填充可用的空間(水平或垂直)。
# 導入必要的包 import tkinter as tk # 創建窗口對象 window = tk.Tk() # 設置窗體大小 window.geometry('350x200') # 設置窗體標題 window.title("TKinter布局管理器") # 創建標籤1 label1 = tk.Label(window, text="標籤1", font=('Arial', 16), bg='yellow', width=10, height=3) label1.pack(side='left', fill='both') # 創建標籤2 label2 = tk.Label(window, text="標籤2", font=('Arial', 16), bg='red', width=10, height=3) label2.pack(side='right', fill='both') # 進入消息循環 window.mainloop()
grid()布局管理器
grid()布局管理器是一種靈活且強大的布局管理器。它允許我們以表格的形式布置窗口小部件。每個窗口小部件佔據一個或多個單元格。我們可以控制單元格的大小、行和列的數量以及單元格之間的空間。
# 導入必要的包
import tkinter as tk# 創建窗口對象
window = tk.Tk()# 設置窗體大小
window.geometry('350x200')# 設置
原創文章,作者:JBLJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131076.html