Ví dụ GUI Python (Hướng dẫn Tkinter)

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách phát triển giao diện người dùng đồ họa bằng cách viết một số ví dụ GUI Python bằng gói Tkinter.
Gói Tkinter được vận chuyển với Python như một gói tiêu chuẩn, vì vậy chúng tôi không cần phải cài đặt bất cứ thứ gì để sử dụng nó.
Tkinter là một gói rất mạnh mẽ. Nếu bạn đã cài đặt Python, bạn có thể sử dụng IDLE là IDE tích hợp được cung cấp cùng với Python, IDE này được viết bằng Tkinter. Nghe hay đấy!!
Chúng tôi sẽ sử dụng Python 3.6, vì vậy nếu bạn đang sử dụng Python 2.x, chúng tôi khuyên bạn nên chuyển sang Python 3.x trừ khi bạn biết ngôn ngữ thay đổi để bạn có thể điều chỉnh mã để chạy mà không gặp lỗi.
Tôi giả sử rằng bạn có một chút nền tảng về những điều cơ bản của Python để giúp bạn hiểu những gì chúng tôi đang làm.
Chúng tôi sẽ bắt đầu bằng cách tạo một cửa sổ mà chúng tôi sẽ tìm hiểu cách thêm các tiện ích như nút, hộp tổ hợp, v.v. Sau đó, chúng tôi sẽ chơi với các thuộc tính của chúng, vì vậy hãy bắt đầu.
Tạo ứng dụng GUI đầu tiên của bạn
Đầu tiên, chúng tôi sẽ nhập gói THE Tkinter và tạo một cửa sổ và đặt tiêu đề của nó:
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.mainloop()
Kết quả sẽ như thế này:
Tuyệt vời! Ứng dụng của chúng tôi hoạt động.
Dòng cuối cùng gọi mainloop
hàm. Hàm này gọi vòng lặp vô tận của cửa sổ, vì vậy cửa sổ sẽ chờ bất kỳ tương tác người dùng nào cho đến khi chúng ta đóng nó.
Nếu bạn quên gọi mainloop
hàm, sẽ không có gì xuất hiện cho người dùng.
Tạo một widget nhãn
Để thêm nhãn vào ví dụ trước, chúng tôi sẽ tạo nhãn bằng lớp nhãn như thế này:
lbl = Label(window, text="Hello")
Sau đó, chúng tôi sẽ đặt vị trí của nó trên biểu mẫu bằng cách sử dụng grid
hàm và cung cấp cho vị trí như thế này:
lbl.grid(column=0, row=0)
Vì vậy, mã hoàn chỉnh sẽ như thế này:
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
window.mainloop()
Và đây là kết quả:
Nếu không gọi grid
chức năng cho nhãn, nó sẽ không hiển thị.
Đặt kích thước phông chữ nhãn
Bạn có thể đặt phông chữ nhãn để bạn có thể làm cho nó lớn hơn và có thể in đậm. Bạn cũng có thể thay đổi kiểu phông chữ.
Để làm như vậy, bạn có thể truyền font
tham số như thế này:
lbl = Label(window, text="Hello", font=("Arial Bold", 50))
Lưu ý rằng font
tham số có thể được truyền cho bất kỳ widget nào để thay đổi phông chữ của nó, do đó, nó áp dụng cho nhiều thứ hơn là chỉ nhãn.
Tuyệt vời, nhưng cửa sổ quá nhỏ, vậy còn việc đặt kích thước cửa sổ thì sao?
Đặt kích thước cửa sổ
Chúng ta có thể đặt kích thước cửa sổ mặc định bằng cách sử dụng geometry
chức năng như sau:
window.geometry('350x200')
Dòng trên đặt chiều rộng cửa sổ thành 350 pixel và chiều cao thành 200 pixel.
Hãy thử thêm nhiều tiện ích GUI như các nút và xem cách xử lý các sự kiện nhấp vào nút.
Thêm một tiện ích nút
Hãy bắt đầu bằng cách thêm nút vào cửa sổ. Nút được tạo và thêm vào cửa sổ giống như nhãn:
btn = Button(window, text="Click Me")
btn.grid(column=1, row=0)
Vì vậy, cửa sổ của chúng tôi sẽ như thế này:
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
btn = Button(window, text="Click Me")
btn.grid(column=1, row=0)
window.mainloop()
Kết quả trông như thế này:
Lưu ý rằng chúng tôi đặt nút trên cột thứ hai của cửa sổ là 1. Nếu bạn quên và đặt nút trên cùng một cột là 0, nó sẽ chỉ hiển thị nút, vì nút sẽ ở trên cùng của nút nhãn.
Thay đổi nút tiền cảnh và màu nền
Bạn có thể thay đổi tiền cảnh của một nút hoặc bất kỳ tiện ích nào khác bằng cách sử dụng thuộc tính fg .
Ngoài ra, bạn có thể thay đổi màu nền của bất kỳ widget nào bằng thuộc tính bg .
btn = Button(window, text="Click Me", bg="orange", fg="red")
Bây giờ, nếu bạn đã cố bấm vào nút, không có gì xảy ra vì sự kiện nhấp của nút chưa được viết.
Xử lý nút bấm Sự kiện
Đầu tiên, chúng ta sẽ viết hàm mà chúng ta cần thực thi khi nhấp vào nút:
def clicked():
lbl.configure(text="Button was clicked !!")
Sau đó, chúng tôi sẽ nối nó bằng nút bằng cách chỉ định chức năng như thế này:
btn = Button(window, text= "Click Me", command=clicked)
Lưu ý rằng , chúng tôi clicked
chỉ gõ không clicked()
bằng dấu ngoặc đơn.
Bây giờ mã đầy đủ sẽ như thế này:
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
def clicked():
lbl.configure(text="Button was clicked !!")
btn = Button(window, text="Click Me", command=clicked)
btn.grid(column=1, row=0)
window.mainloop()
Và khi chúng ta nhấp vào nút, kết quả, như mong đợi, trông như thế này:
Mát mẻ!
Nhận đầu vào bằng cách sử dụng lớp nhập (Hộp văn bản Tkinter)
Trong các ví dụ GUI Python trước đây, chúng ta đã thấy cách thêm các widget đơn giản, bây giờ chúng ta hãy thử lấy đầu vào của người dùng bằng Entry
lớp Tkinter (hộp văn bản Tkinter).
Bạn có thể tạo một hộp văn bản bằng Entry
lớp Tkinter như thế này:
txt = Entry(window,width=10)
Sau đó, bạn có thể thêm nó vào cửa sổ bằng cách sử dụng chức năng lưới như bình thường
Vì vậy, cửa sổ của chúng tôi sẽ như thế này:
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
def clicked():
lbl.configure(text="Button was clicked !!")
btn = Button(window, text="Click Me", command=clicked)
btn.grid(column=2, row=0)
window.mainloop()
Và kết quả sẽ như thế này:
Bây giờ, nếu bạn nhấp vào nút, nó sẽ hiển thị cùng một thông báo cũ, nhưng còn hiển thị văn bản đã nhập trên tiện ích Entry thì sao?
Đầu tiên, bạn có thể nhận được văn bản nhập bằng cách sử dụng get
chức năng. Vì vậy, chúng ta có thể viết mã này vào chức năng được nhấp như thế này:
def clicked():
res = "Welcome to " + txt.get()
lbl.configure(text= res)
Nếu bạn nhấp vào nút và có văn bản trong tiện ích nhập cảnh, nó sẽ hiển thị "Chào mừng đến" được nối với văn bản đã nhập.
Và đây là mã hoàn chỉnh:
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
lbl = Label(window, text="Hello")
lbl.grid(column=0, row=0)
txt = Entry(window,width=10)
txt.grid(column=1, row=0)
def clicked():
res = "Welcome to " + txt.get()
lbl.configure(text= res)
btn = Button(window, text="Click Me", command=clicked)
btn.grid(column=2, row=0)
window.mainloop()
Chạy mã trên và kiểm tra kết quả:
Tuyệt vời!
Mỗi lần chạy mã, chúng ta cần nhấp vào tiện ích nhập để đặt tiêu điểm để viết văn bản, nhưng còn việc đặt tiêu điểm tự động thì sao?
Đặt trọng tâm của tiện ích nhập cảnh
Điều đó thật dễ dàng, tất cả những gì chúng ta cần làm là gọi focus
hàm như thế này:
txt.focus()
Và khi bạn chạy mã của mình, bạn sẽ nhận thấy rằng tiện ích nhập cảnh có trọng tâm để bạn có thể viết văn bản của mình ngay lập tức.
Vô hiệu hóa Widget Entry
Để tắt tiện ích nhập cảnh, bạn có thể đặt thuộc tính trạng thái thành bị tắt:
txt = Entry(window,width=10, state='disabled')
Bây giờ, bạn sẽ không thể nhập bất kỳ văn bản.
Thêm tiện ích Combobox
Để thêm tiện ích combobox, bạn có thể sử dụng Combobox
lớp từ thư viện ttk như thế này:
from tkinter.ttk import *
combo = Combobox(window)
Sau đó, bạn có thể thêm các giá trị của bạn vào combobox.
from tkinter import *
from tkinter.ttk import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
combo = Combobox(window)
combo['values']= (1, 2, 3, 4, 5, "Text")
combo.current(1) #set the selected item
combo.grid(column=0, row=0)
window.mainloop()
Như bạn có thể thấy, chúng tôi thêm các mục combobox bằng cách sử dụng các giá trị tuple.
Để đặt mục đã chọn, bạn có thể chuyển chỉ mục của mục mong muốn vào chức năng hiện tại.
Để có được mục chọn, bạn có thể sử dụng get
chức năng như thế này:
combo.get()
Thêm tiện ích Checkbutton (Hộp kiểm Tkinter)
Để tạo tiện ích nút kiểm tra, bạn có thể sử dụng Checkbutton
lớp như thế này:
chk = Checkbutton(window, text='Choose')
Ngoài ra, bạn có thể đặt trạng thái đã kiểm tra bằng cách chuyển giá trị kiểm tra vào Nút kiểm tra như thế này:
from tkinter import *
from tkinter.ttk import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
chk_state = BooleanVar()
chk_state.set(True) #set check state
chk = Checkbutton(window, text='Choose', var=chk_state)
chk.grid(column=0, row=0)
window.mainloop()
Kiểm tra kết quả:
Đặt trạng thái kiểm tra của một nút kiểm tra
Ở đây chúng ta tạo một biến loại BooleanVar
không phải là biến Python tiêu chuẩn, đó là biến Tkinter và sau đó chúng ta chuyển nó đến lớp Checkbutton để đặt trạng thái kiểm tra làm dòng được tô sáng trong ví dụ trên.
Bạn có thể đặt giá trị Boolean thành false để bỏ chọn.
Ngoài ra, bạn có thể sử dụng IntVar
thay vì BooleanVar
và đặt giá trị thành 0 hoặc 1.
chk_state = IntVar()
chk_state.set(0) #uncheck
chk_state.set(1) #check
Những ví dụ này cho kết quả tương tự như BooleanVar
.
Thêm tiện ích nút radio
Để thêm các nút radio, bạn có thể sử dụng RadioButton
lớp như thế này:
rad1 = Radiobutton(window,text='First', value=1)
Lưu ý rằng bạn nên đặt giá trị cho mỗi nút radio với một giá trị khác, nếu không, chúng sẽ không hoạt động.
from tkinter import *
from tkinter.ttk import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
rad1 = Radiobutton(window,text='First', value=1)
rad2 = Radiobutton(window,text='Second', value=2)
rad3 = Radiobutton(window,text='Third', value=3)
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
window.mainloop()
Kết quả của đoạn mã trên trông như thế này:
Ngoài ra, bạn có thể đặt lệnh của bất kỳ nút radio nào trong số các chức năng cụ thể, vì vậy nếu người dùng nhấp vào bất kỳ nút nào trong số đó, nó sẽ chạy mã chức năng.
Đây là một ví dụ:
rad1 = Radiobutton(window,text='First', value=1, command=clicked)
def clicked():
# Do what you need
Khá đơn giản!
Nhận giá trị nút radio (Nút radio đã chọn)
Để có được nút radio hiện được chọn hoặc giá trị của nút radio, bạn có thể chuyển tham số biến cho các nút radio và sau đó bạn có thể nhận giá trị của nút đó.
from tkinter import *
from tkinter.ttk import *
window = Tk()
window.title("Welcome to LikeGeeks app")
selected = IntVar()
rad1 = Radiobutton(window,text='First', value=1, variable=selected)
rad2 = Radiobutton(window,text='Second', value=2, variable=selected)
rad3 = Radiobutton(window,text='Third', value=3, variable=selected)
def clicked():
print(selected.get())
btn = Button(window, text="Click Me", command=clicked)
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
btn.grid(column=3, row=0)
window.mainloop()
Mỗi khi bạn chọn một nút radio, giá trị của biến sẽ được thay đổi thành giá trị của nút radio được chọn.
Thêm một Widget ScrolledText (Tkinter textarea)
Để thêm tiện ích ScrolledText, bạn có thể sử dụng ScrolledText
lớp như thế này:
from tkinter import scrolledtext
txt = scrolledtext.ScrolledText(window,width=40,height=10)
Ở đây chúng tôi chỉ định chiều rộng và chiều cao của tiện ích ScrolledText, nếu không, nó sẽ lấp đầy toàn bộ cửa sổ.
from tkinter import *
from tkinter import scrolledtext
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
txt = scrolledtext.ScrolledText(window,width=40,height=10)
txt.grid(column=0,row=0)
window.mainloop()
Kết quả như bạn có thể thấy:
Đặt nội dung Scrolledtext
Để đặt nội dung scrolledtext, bạn có thể sử dụng insert
phương pháp như sau:
txt.insert(INSERT,'You text goes here')
Xóa / Xóa nội dung Scrolledtext
Để xóa nội dung của tiện ích cuộn, bạn có thể sử dụng delete
phương pháp như sau:
txt.delete(1.0,END)
Tuyệt quá!
Tạo một hộp thông báo
Để hiển thị hộp thông báo bằng Tkinter, bạn có thể sử dụng thư viện hộp thư như thế này:
from tkinter import messagebox
messagebox.showinfo('Message title','Message content')
Khá dễ dàng!
Hãy hiển thị hộp thông báo khi người dùng nhấp vào nút.
from tkinter import *
from tkinter import messagebox
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
def clicked():
messagebox.showinfo('Message title', 'Message content')
btn = Button(window,text='Click here', command=clicked)
btn.grid(column=0,row=0)
window.mainloop()
Khi bạn nhấp vào nút, một hộp thông báo thông tin sẽ xuất hiện.
Hiển thị thông báo cảnh báo và lỗi
Bạn có thể hiển thị một thông báo cảnh báo hoặc thông báo lỗi theo cùng một cách. Điều duy nhất cần thay đổi là chức năng tin nhắn
messagebox.showwarning('Message title', 'Message content') #shows warning message
messagebox.showerror('Message title', 'Message content') #shows error message
Hiển thị hộp thoại hỏi câu hỏi
Để hiển thị hộp thông báo có / không cho người dùng, bạn có thể sử dụng một trong các messagebox
chức năng sau :
from tkinter import messagebox
res = messagebox.askquestion('Message title','Message content')
res = messagebox.askyesno('Message title','Message content')
res = messagebox.askyesnocancel('Message title','Message content')
res = messagebox.askokcancel('Message title','Message content')
res = messagebox.askretrycancel('Message title','Message content')
Bạn có thể chọn kiểu tin nhắn phù hợp theo nhu cầu của bạn. Chỉ cần thay thế showinfo
dòng chức năng từ dòng trước và chạy nó.
Ngoài ra, bạn có thể kiểm tra nút nào đã được nhấp bằng biến kết quả.
Nếu bạn bấm OK hoặc có hoặc thử lại , nó sẽ trả về True là giá trị, nhưng nếu bạn chọn không hoặc hủy , nó sẽ trả về Sai .
Hàm duy nhất trả về một trong ba giá trị là askyesnocancel
hàm; nó trả về Đúng hoặc Sai hoặc Không có .
Thêm một SpinBox (Tiện ích số)
Để tạo tiện ích Spinbox, bạn có thể sử dụng Spinbox
lớp như thế này:
spin = Spinbox(window, from_=0, to=100)
Ở đây chúng tôi tạo một tiện ích Spinbox và chúng tôi chuyển từ_ và đến các tham số để chỉ định phạm vi số cho Spinbox.
Ngoài ra, bạn có thể chỉ định chiều rộng của tiện ích bằng cách sử dụng tham số chiều rộng:
spin = Spinbox(window, from_=0, to=100, width=5)
Kiểm tra ví dụ đầy đủ:
from tkinter import *
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
spin = Spinbox(window, from_=0, to=100, width=5)
spin.grid(column=0,row=0)
window.mainloop()
Bạn có thể chỉ định các số cho Spinbox thay vì sử dụng toàn bộ phạm vi như thế này:
spin = Spinbox(window, values=(3, 8, 11), width=5)
Ở đây, tiện ích Spinbox chỉ hiển thị 3 số này: 3, 8 và 11.
Đặt giá trị mặc định cho Spinbox
Để đặt giá trị mặc định của Spinbox, bạn có thể chuyển giá trị cho textvariable
tham số như sau:
var =IntVar()
var.set(36)
spin = Spinbox(window, from_=0, to=100, width=5, textvariable=var)
Bây giờ, nếu bạn chạy chương trình, nó sẽ hiển thị 36 làm giá trị mặc định cho Spinbox.
Thêm tiện ích thanh tiến trình
Để tạo một thanh tiến trình, bạn có thể sử dụng progressbar
lớp như thế này:
from tkinter.ttk import Progressbar
bar = Progressbar(window, length=200)
Bạn có thể đặt giá trị thanh tiến trình như thế này:
bar['value'] = 70
Bạn có thể đặt giá trị này dựa trên bất kỳ quy trình nào bạn muốn như tải xuống tệp hoặc hoàn thành tác vụ.
Thay đổi màu thanh tiến trình
Thay đổi màu Progressbar là một chút khó khăn.
Đầu tiên, chúng ta sẽ tạo một kiểu và đặt màu nền và cuối cùng là đặt kiểu đã tạo thành Thanh tiến trình.
Kiểm tra ví dụ sau:
from tkinter import *
from tkinter.ttk import Progressbar
from tkinter import ttk
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
style = ttk.Style()
style.theme_use('default')
style.configure("black.Horizontal.TProgressbar", background='black')
bar = Progressbar(window, length=200, style='black.Horizontal.TProgressbar')
bar['value'] = 70
bar.grid(column=0, row=0)
window.mainloop()
Và kết quả sẽ như thế này:
Thêm hộp thoại tệp (Trình chọn tệp và thư mục)
Để tạo hộp thoại tệp (trình chọn tệp), bạn có thể sử dụng filedialog
lớp như thế này:
from tkinter import filedialog
file = filedialog.askopenfilename()
Sau khi bạn chọn một tệp và nhấp vào mở, biến tệp sẽ giữ đường dẫn tệp đó.
Ngoài ra, bạn có thể yêu cầu nhiều tệp như thế này:
files = filedialog.askopenfilenames()
Chỉ định loại tệp (Phần mở rộng tệp bộ lọc)
Bạn có thể chỉ định các loại tệp cho hộp thoại tệp bằng filetypes
tham số, chỉ cần chỉ định các phần mở rộng trong bộ dữ liệu.
file = filedialog.askopenfilename(filetypes = (("Text files","*.txt"),("all files","*.*")))
Bạn có thể yêu cầu một thư mục bằng askdirectory
phương thức:
dir = filedialog.askdirectory()
Bạn có thể chỉ định thư mục ban đầu cho hộp thoại tệp bằng cách chỉ định initialdir
như thế này:
from os import path
file = filedialog.askopenfilename(initialdir= path.dirname(__file__))
Dễ dàng!
Thêm một thanh menu
Để thêm một thanh menu, bạn có thể sử dụng menu
lớp như thế này:
from tkinter import Menu
menu = Menu(window)
menu.add_command(label='File')
window.config(menu=menu)
Đầu tiên, chúng tôi tạo một menu, sau đó chúng tôi thêm nhãn đầu tiên của chúng tôi và cuối cùng, chúng tôi gán menu cho cửa sổ của chúng tôi.
Bạn có thể thêm các mục menu dưới bất kỳ menu nào bằng cách sử dụng add_cascade()
chức năng như thế này:
menu.add_cascade(label='File', menu=new_item)
Vì vậy, mã của chúng tôi sẽ như thế này:
from tkinter import *
from tkinter import Menu
window = Tk()
window.title("Welcome to LikeGeeks app")
menu = Menu(window)
new_item = Menu(menu)
new_item.add_command(label='New')
menu.add_cascade(label='File', menu=new_item)
window.config(menu=menu)
window.mainloop()
Bằng cách này, bạn có thể thêm bao nhiêu mục menu như bạn muốn.
from tkinter import *
from tkinter import Menu
window = Tk()
window.title("Welcome to LikeGeeks app")
menu = Menu(window)
new_item = Menu(menu)
new_item.add_command(label='New')
new_item.add_separator()
new_item.add_command(label='Edit')
menu.add_cascade(label='File', menu=new_item)
window.config(menu=menu)
window.mainloop()
Ở đây chúng tôi thêm một mục menu khác gọi là Chỉnh sửa bằng dấu tách menu.
Bạn có thể nhận thấy một đường đứt nét ở đầu, tốt, nếu bạn nhấp vào dòng đó, nó sẽ hiển thị các mục menu trong một cửa sổ nhỏ riêng biệt.
Bạn có thể tắt tính năng này bằng cách vô hiệu hóa tearoff
tính năng như thế này:
new_item = Menu(menu, tearoff=0)
Chỉ cần thay thế new_item
trong ví dụ trên bằng ví dụ này và nó sẽ không hiển thị đường đứt nét nữa.
Tôi không cần phải nhắc bạn rằng bạn có thể nhập bất kỳ mã nào hoạt động khi người dùng nhấp vào bất kỳ mục menu nào bằng cách chỉ định thuộc tính lệnh.
new_item.add_command(label='New', command=clicked)
Thêm một Widget Notebook (Điều khiển tab)
Để tạo một điều khiển tab, có một vài bước.
- Đầu tiên, chúng ta tạo một điều khiển tab bằng cách sử dụng
Notebook
lớp. - Tạo một tab bằng cách sử dụng
Frame
lớp. - Thêm tab đó vào điều khiển tab.
- Đóng gói điều khiển tab để nó hiển thị trong cửa sổ.
from tkinter import *
from tkinter import ttk
window = Tk()
window.title("Welcome to LikeGeeks app")
tab_control = ttk.Notebook(window)
tab1 = ttk.Frame(tab_control)
tab_control.add(tab1, text='First')
tab_control.pack(expand=1, fill='both')
window.mainloop()
Bằng cách này, bạn có thể thêm bao nhiêu tab tùy thích.
Thêm Widgets vào Notebook
Sau khi tạo các tab, bạn có thể đặt các widget bên trong các tab này bằng cách gán thuộc tính cha cho tab mong muốn.
from tkinter import *
from tkinter import ttk
window = Tk()
window.title("Welcome to LikeGeeks app")
tab_control = ttk.Notebook(window)
tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)
tab_control.add(tab1, text='First')
tab_control.add(tab2, text='Second')
lbl1 = Label(tab1, text= 'label1')
lbl1.grid(column=0, row=0)
lbl2 = Label(tab2, text= 'label2')
lbl2.grid(column=0, row=0)
tab_control.pack(expand=1, fill='both')
window.mainloop()
Thêm khoảng cách cho các widget (Padding)
Bạn có thể thêm phần đệm cho các điều khiển của mình để làm cho nó trông có tổ chức tốt bằng cách sử dụng các thuộc tính padx
và pady
.
Chỉ cần vượt qua padx
và pady
đến bất kỳ widget nào và cung cấp cho họ một giá trị.
lbl1 = Label(tab1, text= 'label1', padx=5, pady=5)
Nó đơn giản mà!
Trong hướng dẫn này, chúng tôi đã thấy nhiều ví dụ GUI Python sử dụng thư viện Tkinter và chúng tôi đã thấy việc phát triển giao diện đồ họa bằng cách sử dụng nó dễ dàng như thế nào.
Hướng dẫn này bao gồm các khía cạnh chính của phát triển GUI Python, nhưng không phải tất cả chúng. Không có hướng dẫn hoặc một cuốn sách có thể bao gồm tất cả mọi thứ.
Tôi hy vọng bạn tìm thấy những ví dụ hữu ích. Hãy quay lại nhé.
Cảm ơn bạn.
Có thể bạn quan tâm
