Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Giới thiệu widget Label trong Tkinter
Trong lập trình giao diện người dùng với Tkinter, widget Label đóng vai trò quan trọng trong việc hiển thị thông tin trực quan cho người dùng. Label là một trong những widget cơ bản và được sử dụng phổ biến nhất để hiển thị văn bản và hình ảnh trên màn hình. Trong bài viết này, mình sẽ tìm hiểu cách sử dụng widget Label trong Tkinter để tạo và tùy chỉnh các label, cũng như cách hiển thị cả văn bản và hình ảnh trong giao diện của ứng dụng.
Giới thiệu về widget Label trong Tkinter
Widget Label trong Tkinter được sử dụng để hiển thị văn bản hoặc hình ảnh trên màn hình. Để sử dụng một Label widget, bạn sử dụng cú pháp sau:
label = ttk.Label(master, **options)
Widget Label có nhiều tùy chọn cho phép bạn tùy chỉnh giao diện của nó:
Tùy chọn | Ý nghĩa |
---|---|
anchor | Xác định vị trí của văn bản/hình ảnh khi chúng nhỏ hơn chiều rộng, với các giá trị tk.W, tk.CENTER, tk.E |
background | Đặt màu nền cho label |
borderwidth | Tạo hiệu ứng cho Label, ví dụ như flat, raised, sunken, groove, và ridge |
class_ | Đặt tên lớp tùy chỉnh cho widget để thay đổi giao diện |
compound | Xác định cách hiển thị cả văn bản và hình ảnh trên Label |
cursor | Xác định kiểu con trỏ chuột khi di chuyển qua widget |
font | Đặt kiểu font chữ cho văn bản |
foreground | Đặt màu của văn bản |
image | Chỉ định hình ảnh để hiển thị, ngoài văn bản hoặc thay vì văn bản |
justify | Chỉ định cách căn lề các dòng văn bản chứa ký tự newline |
padding | Thêm khoảng trống xung quanh label |
relief | Hiệu ứng đường viền của label |
style | Chỉ định phong cách tùy chỉnh của widget |
takefocus | Xác định widget có nhận tiêu điểm khi di chuyển qua không. Mặc định là False. |
text | Chỉ định chuỗi văn bản để hiển thị trên widget |
textvariable | Đối tượng StringVar giữ giá trị văn bản của widget, sẽ ghi đè text nếu cả hai đều có mặt |
underline | Xác định vị trí ký tự cần được gạch chân |
width | Đặt số ký tự sẽ hiển thị |
wraplength | Cắt dòng văn bản thành các dòng nhỏ hơn chiều dài được chỉ định bởi wraplength |
Chương trình dưới đây minh họa cách sử dụng các tùy chọn của widget Label:
Bài viết này được đăng tại [free tuts .net]
import tkinter as tk from tkinter import ttk root = tk.Tk() root.geometry('300x200') root.resizable(False, False) root.title('Label Widget Demo') # Hiển thị label ở đây root.mainloop()
Hiển thị một label cơ bản trong Tkinter
Chương trình dưới đây hiển thị một label cơ bản trên cửa sổ root:
import tkinter as tk from tkinter.ttk import Label root = tk.Tk() root.geometry('300x200') root.resizable(False, False) root.title('Label Widget Demo') # Hiển thị một label label = Label(root, text='Đây là một label') label.pack(ipadx=10, ipady=10) root.mainloop()
Cách hoạt động:
- Import lớp Label từ module tkinter.ttk.
- Tạo cửa sổ root và thiết lập các thuộc tính như kích thước, khả năng thay đổi kích thước, và tiêu đề.
- Tạo một instance mới của Label widget, gán nó vào cửa sổ root và gán một chuỗi văn bản vào thuộc tính text.
Đặt font chữ cho Label trong Tkinter
Để đặt font chữ cho label, bạn truyền tham số font vào hàm tạo Label như sau:
font = ('Tên font', kích_thước)
Ví dụ:
font=("Helvetica", 14)
Chương trình dưới đây hiển thị một label với font Helvetica:
import tkinter as tk from tkinter import ttk root = tk.Tk() root.geometry('300x200') root.resizable(False, False) root.title('Label Widget Demo') # Label với font chữ cụ thể label = ttk.Label( root, text='Label với font Helvetica', font=("Helvetica", 14) ) label.pack(ipadx=10, ipady=10) root.mainloop()
Kết quả:
Hiển thị hình ảnh trong Tkinter
Để sử dụng Label widget hiển thị hình ảnh, bạn thực hiện các bước sau:
Tạo một PhotoImage widget bằng cách truyền đường dẫn của ảnh vào hàm tạo PhotoImage:
photo = tk.PhotoImage(file='./assets/python.png')
Gán đối tượng PhotoImage vào tùy chọn image của Label widget:
Label(..., image=photo)
Chương trình dưới đây minh họa cách sử dụng Label widget để hiển thị hình ảnh:
import tkinter as tk from tkinter import ttk # Tạo cửa sổ root root = tk.Tk() root.geometry('300x200') root.resizable(False, False) root.title('Label Widget Image') # Hiển thị một image label photo = tk.PhotoImage(file='./assets/python.png') image_label = ttk.Label( root, image=photo, padding=5 ) image_label.pack() root.mainloop()
Lưu ý rằng file hình ảnh nằm trong thư mục /assets/
.
Kết quả
Hiển thị cả văn bản và hình ảnh trong Tkinter
Để hiển thị cả văn bản và hình ảnh, bạn sẽ sử dụng thuộc tính text và tùy chọn compound.
Tùy chọn compound xác định vị trí của hình ảnh so với văn bản. Các giá trị hợp lệ bao gồm:
Compound | Hiệu ứng |
---|---|
'top' | Hiển thị hình ảnh ở phía trên văn bản |
'bottom' | Hiển thị hình ảnh ở phía dưới văn bản |
'left' | Hiển thị hình ảnh bên trái văn bản |
'right' | Hiển thị hình ảnh bên phải văn bản |
'none' | Hiển thị hình ảnh nếu có, nếu không thì hiển thị văn bản. Mặc định là 'none'. |
'text' | Hiển thị văn bản, không hiển thị hình ảnh |
'image' | Hiển thị hình ảnh, không hiển thị văn bản |
Chương trình dưới đây minh họa cách hiển thị cả văn bản và hình ảnh trên label:
import tkinter as tk from tkinter import ttk # Tạo cửa sổ root root = tk.Tk() root.geometry('300x200') root.resizable(False, False) root.title('Label Widget Image') # Hiển thị một image label photo = tk.PhotoImage(file='./assets/python.png') image_label = ttk.Label( root, image=photo, text='Python', compound='top' ) image_label.pack() root.mainloop()
Kết quả
Kết bài
Widget Label trong Tkinter là một công cụ và linh hoạt, cho phép bạn dễ dàng hiển thị văn bản và hình ảnh trong ứng dụng của mình. Với nhiều tùy chọn tùy chỉnh, bạn có thể điều chỉnh giao diện và cách hiển thị của Label để phù hợp với nhu cầu thiết kế. Bằng cách sử dụng Label, bạn có thể tạo ra giao diện trực quan và hấp dẫn hơn, giúp người dùng dễ dàng nắm bắt thông tin và tương tác với ứng dụng một cách hiệu quả.