Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Widget Button trong Tkinter
Trong lập trình giao diện người dùng với Tkinter, widget Button là một thành phần quan trọng và thường xuyên được sử dụng. Button cho phép người dùng tương tác với ứng dụng thông qua các hành động như nhấp chuột hoặc nhấn phím. Trong bài viết này, mình sẽ tìm hiểu về widget Button trong Tkinter, cách tạo và sử dụng nó để xây dựng các ứng dụng có giao diện thân thiện và dễ sử dụng.

Giới thiệu về Widget Button trong Tkinter
Widget Button trong Tkinter là một thành phần có thể nhấp được trong các ứng dụng. Thông thường, bạn có thể sử dụng văn bản hoặc hình ảnh để biểu thị hành động sẽ được thực hiện khi nhấp vào.
Các nút có thể hiển thị văn bản bằng một phông chữ duy nhất và văn bản này có thể trải dài nhiều dòng. Bạn cũng có thể gạch chân một trong các ký tự để tạo phím tắt.
Để gọi một hàm hoặc phương thức của một lớp tự động khi nút được nhấn, bạn gán thuộc tính command của nút cho hàm hoặc phương thức đó. Đây được gọi là cơ chế ràng buộc lệnh trong Tkinter.
Bài viết này được đăng tại [free tuts .net]
Để tạo một nút, bạn sử dụng hàm tạo ttk.Button như sau:
button = ttk.Button(master, **options)
Trong đó, master là widget cha của nút, text là nhãn của nút, và command là hàm sẽ được gọi tự động khi nút được nhấp vào.
Gọi lại hàm khi nhấn nút
Thuộc tính command liên kết hành động của nút với một hàm hoặc phương thức của lớp. Khi bạn nhấp hoặc nhấn nút, hàm hoặc phương thức đó sẽ được gọi tự động.
Để gán hàm gọi lại cho thuộc tính command, bạn có thể sử dụng biểu thức lambda:
ttk.Button( root, text="Demo Button", command=lambda: # làm gì đó )
Các trạng thái của nút
Trạng thái mặc định của nút là normal. Trong trạng thái này, nút sẽ phản hồi các sự kiện chuột và bàn phím. Nút cũng có thể ở trạng thái disabled, khi đó nó sẽ bị mờ đi và không phản hồi các sự kiện.
Để điều khiển trạng thái của nút, bạn sử dụng phương thức state():
# đặt cờ disabled button.state(['disabled']) # bỏ cờ disabled button.state(['!disabled'])
Ví dụ về nút trong Tkinter
Ví dụ đơn giản về nút trong Tkinter
Chương trình sau đây hiển thị một nút Exit. Khi bạn nhấp vào nó, chương trình sẽ kết thúc:
import tkinter as tk
from tkinter import ttk
# cửa sổ gốc
root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Button Demo')
# nút exit
exit_button = ttk.Button(
root,
text='Exit',
command=lambda: root.quit()
)
exit_button.pack(
ipadx=5,
ipady=5,
expand=True
)
root.mainloop()
Kết quả:

Ví dụ về nút hình ảnh
Chương trình sau đây hiển thị một nút hình ảnh:

import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo
# Cửa sổ chính
root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Demo Nút Ảnh')
# Hàm xử lý khi nút được nhấn
def tai_xuong():
showinfo(
title='Thông tin',
message='Bạn đã nhấn nút tải xuống!'
)
# Tạo đối tượng hình ảnh từ file ảnh
tai_xuong_icon = tk.PhotoImage(file='./assets/download.png')
tai_xuong_button = ttk.Button(
root,
image=tai_xuong_icon,
command=tai_xuong
)
# Hiển thị nút trên cửa sổ
tai_xuong_button.pack(
ipadx=5,
ipady=5,
expand=True
)
# Vòng lặp chính để chạy ứng dụng
root.mainloop()
Kết quả

Hiển thị cả văn bản và hình ảnh trên một nút
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo
# cửa sổ gốc
root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Image Button Demo')
# hàm xử lý khi nhấn nút download
def download_clicked():
showinfo(
title='Information',
message='Download button clicked!'
)
download_icon = tk.PhotoImage(file='./assets/download.png')
download_button = ttk.Button(
root,
image=download_icon,
text='Download',
compound=tk.LEFT,
command=download_clicked
)
download_button.pack(
ipadx=5,
ipady=5,
expand=True
)
root.mainloop()
Kết quả

Kết bài
Như vậy, đã cùng nhau tìm hiểu cách sử dụng widget Button trong Tkinter, từ cách tạo nút đơn giản đến việc hiển thị hình ảnh và văn bản trên nút. Với lớp ttk.Button(), bạn có thể tạo ra các nút có tính năng và giao diện đa dạng, đồng thời dễ dàng gán các hành động cho sự kiện nhấp chuột thông qua thuộc tính command. Bằng cách sử dụng tk.PhotoImage() và thuộc tính compound, bạn có thể tích hợp hình ảnh và văn bản trên cùng một nút, giúp tăng tính thẩm mỹ và trực quan cho ứng dụng. Hy vọng qua bài viết này, bạn đã có cái nhìn rõ hơn về cách sử dụng widget Button trong Tkinter và có thể áp dụng vào các dự án của mình một cách hiệu quả.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng