Graphical User Interface (GUI) 是一種讓用戶通過圖像化方式進行交互的軟件界面。在Python中,開發GUI可以使用多種庫,比如TkInter,PyQt,wxPython等等。這篇文章將介紹如何使用TkInter庫,在Python中打造炫酷的用戶界面。
一、TkInter簡介
TkInter是Python自帶的圖形用戶界面(GUI)編程庫,易於學習,而且在Windows,Mac和Linux等多個操作系統下面都有很好的兼容性,所以很受Python初學者的喜歡和歡迎。
TkInter的主要組件是窗口、標籤、按鈕、輸入框、下拉框、單選框、複選框等等。Tkinter如此流行無疑也和它的不錯的擴展性有關,可以使用ttk、Pmw、wxPython等擴展庫,可以讓Tkinter的用戶界面更加豐富、間接,功能更加強大。
import tkinter as tk
#創建主窗口
root = tk.Tk()
root.title("My Program")
root.geometry("500x500")
# 添加控件
...
root.mainloop()
二、基本控件使用
a. 標籤控件
標籤控件可以用來放置文字、圖像或者組合控件。創建標籤控件首先需要使用Python中的tkinter庫的Label類,例如:
import tkinter as tk
root = tk.Tk()
root.geometry('200x200')
#創建標籤空間
L1 = tk.Label(root, text='Hello, world!')
L1.pack()
root.mainloop()
該代碼創建了一個200×200的主窗口,在主窗口中添加了一個標籤控件,並且顯示“Hello, world!”。
b. 按鈕控件
通常來說,按鈕控件會被用於響應用戶的點擊事件,比如:打開文件或執行某一操作。創建按鈕控件需要使用Python中的tkinter庫的Button類,例如:
import tkinter as tk
root = tk.Tk()
root.geometry('200x200')
#創建函數
def clicked():
print("Button was clicked!")
#創建按鈕控件
btn = tk.Button(root, text='Click me!', command=clicked)
btn.pack()
root.mainloop()
c. 輸入控件
用戶輸入控件主要用於從用戶獲取輸入數據,比如:在文本框中獲取用戶的名稱或地址等。創建輸入控件需要使用Python中的tkinter庫的Entry類,例如:
import tkinter as tk
root = tk.Tk()
root.geometry('200x200')
#創建標籤空間
L1 = tk.Label(root, text="Name")
L1.pack()
#創建輸入控件
E1 = tk.Entry(root, bd =5)
E1.pack()
root.mainloop()
三、較為高級的控件使用
a. 列表控件
列表控件用來展示一個列表,讓用戶從中選擇一個或多個值。創建列表控件需要使用Python中的tkinter庫的Listbox類,例如:
import tkinter as tk
root = tk.Tk()
root.geometry('200x150')
#創建列表控件
listbox = tk.Listbox(root)
listbox.insert(0, "Python")
listbox.insert(1, "Java")
listbox.insert(2, "C++")
listbox.pack()
root.mainloop()
b. 滑動條控件
滑動條控件用來讓用戶在一個範圍內進行選擇,比如:調整音量或亮度等。創建滑動條控件需要使用Python中的tkinter庫的Scale類,例如:
import tkinter as tk
root = tk.Tk()
#創建函數
def print_selection(v):
print(v)
#創建滑動條控件
scale = tk.Scale(root, label='move',from_=0, to=10, orient=tk.HORIZONTAL,\
length=200,showvalue=1,tickinterval=1, resolution=0.1, command=print_selection)
scale.pack()
root.mainloop()
c. 菜單控件
菜單控件用於添加頂部下拉菜單或彈出式菜單。創建菜單控件需要使用Python中的tkinter庫的Menu類,例如:
import tkinter as tk
root = tk.Tk()
#定義函數
def hello():
print("Hello World!")
# 創建菜單空間
menubar = tk.Menu(root)
#創建File菜單
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=hello)
filemenu.add_command(label="Open", command=hello)
filemenu.add_command(label="Save", command=hello)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
#創建Edit菜單
editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Cut", command=hello)
editmenu.add_command(label="Copy", command=hello)
editmenu.add_command(label="Paste", command=hello)
menubar.add_cascade(label="Edit", menu=editmenu)
root.config(menu=menubar)
root.mainloop()
四、總結
這篇文章介紹了Python中使用TkInter庫創建GUI的基礎知識,包括創建窗口和添加控件,以及高級控件的使用。雖然TkInter庫提供了許多GUI元素,但並不是所有的GUI要素都包含在其中。對於更複雜的GUI,建議使用其他庫,如PyQt和wxPython。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/188262.html