1. Tạo cửa sổ chính của ứng dụng
Hôm nay chúng ta sẽ bắt đầu một cuộc hành trình thú vị vào thế giới giao diện đồ họa với thư viện Tkinter. Sau bài giảng này, chiếc PC của bạn sẽ không chỉ là một cái hộp kim loại thô lỗ, mà là một pháp sư thực thụ, có thể không chỉ tính toán mà còn hiển thị kết quả một cách rõ ràng cho người dùng trên màn hình. Vậy, thắt dây an toàn và bắt đầu xây dựng cửa sổ đầu tiên của ứng dụng nhé!
Bắt đầu bằng việc tạo cửa sổ chính cho ứng dụng của mình. Trong Tkinter, điều này khá đơn giản. Chúng ta sẽ sử dụng hàm Tk()
để tạo một instance của cửa sổ chính — giống như việc viết "Hello, World!" trong thế giới GUI vậy.
import tkinter as tk
# Tạo một instance của ứng dụng
root = tk.Tk()
# Đặt tiêu đề cho cửa sổ
root.title("Ứng dụng đầu tiên của tôi")
# Khởi động vòng lặp chính
root.mainloop()
Điều gì đang xảy ra ở đây?
- Import Tkinter: Bắt đầu bằng cách import thư viện
tkinter
. Để tiện, chúng ta import nó dưới dạngtk
(bởi vì lập trình viên chúng ta rất thích viết tắt). - Tạo cửa sổ: Chúng ta tạo đối tượng
root
, đại diện cho cửa sổ chính của ứng dụng. Hãy tưởng tượng rằng cửa sổ này là "trái tim", và không có nó, ứng dụng của chúng ta sẽ không thể tồn tại. - Tiêu đề cửa sổ: Sử dụng method
title()
, chúng ta đặt tiêu đề cho cửa sổ để người dùng biết họ đang làm việc với cái gì. Ở đây, chúng ta đơn giản gọi nó là "Ứng dụng đầu tiên của tôi". - Vòng lặp chính (
mainloop()
): Đây là yếu tố quan trọng, khởi chạy xử lý sự kiện trong ứng dụng. Khi vòng lặp này hoạt động, cửa sổ của chúng ta sẽ tiếp tục hiển thị trên màn hình, chờ sự tương tác từ người dùng.
Hướng dẫn từng bước
-
Tạo cửa sổ chính: mỗi giao diện bắt đầu với việc tạo một cửa sổ chính.
root = tk.Tk() root.title("Cửa sổ cơ bản")
Tuyệt vời! Bạn vừa mời một cửa sổ vào cuộc sống của bạn. Hy vọng bạn có rèm cửa!
-
Cấu hình tham số cửa sổ: thêm một chút tùy chỉnh riêng.
root.geometry("800x600") # Chiều rộng x Chiều cao root.iconbitmap('icon.ico') # Bạn có thể chỉ định tệp biểu tượng của riêng mình
-
Vòng lặp chính của ứng dụng: để cửa sổ của bạn không biến mất ngay lập tức sau khi xuất hiện, hãy khởi chạy vòng lặp chính.
root.mainloop()
Vòng lặp chính của ứng dụng
Bây giờ chúng ta đã có một cửa sổ cơ bản, hãy nói về vòng lặp chính mainloop()
.
Nó hoạt động như một DJ vô hình trong bữa tiệc của bạn — miễn là nó còn đang chạy, mọi thứ sẽ diễn ra như kế hoạch.
Vòng lặp chính luôn sẵn sàng, đảm bảo rằng ứng dụng hoạt động và phản hồi các hành động của người dùng,
chẳng hạn như click chuột hoặc ấn phím.
Không có vòng lặp này, ứng dụng của bạn chỉ hiển thị một cửa sổ trống và thoát. Vì vậy, đừng quên thêm nó vào cuối mỗi script Tkinter của bạn!
2. Làm quen với widgets
Tkinter cung cấp rất nhiều widgets, mỗi loại có một chức năng riêng biệt. Hãy cùng làm quen với một số widgets cơ bản nhé.
Các widgets cơ bản của Tkinter
- Cửa sổ (Window): bề mặt chính, nơi tất cả các widgets khác được chứa.
- Nút (Button): yếu tố tương tác, phản hồi khi người dùng nhấn vào.
- Ô nhập liệu (Entry): trường nhập văn bản một dòng.
- Nhãn (Label): dùng để hiển thị văn bản hoặc hình ảnh.
- Trường văn bản (Text): để nhập và hiển thị văn bản nhiều dòng.
Ví dụ sử dụng widgets
Dưới đây là một ví dụ nhỏ, minh họa cách tạo một cửa sổ đơn giản với một nút và một nhãn:
import tkinter as tk
def say_hello():
label.config(text="Xin chào, thế giới!")
root = tk.Tk()
root.title("Ứng dụng đầu tiên của tôi")
label = tk.Label(root, text="Ấn nút")
label.pack(pady=10)
button = tk.Button(root, text="Ấn vào tôi", command=say_hello)
button.pack(pady=5)
root.mainloop()
Sau khi chạy đoạn mã này, bạn sẽ thấy một cửa sổ với một nhãn và một nút. Nhấn vào nút — và nhãn sẽ chào thế giới!
3. Thêm widgets vào cửa sổ
Bây giờ chúng ta đã có cửa sổ tuyệt đẹp (vâng, hiện tại đó là tất cả những gì chúng ta có thể tự hào), hãy thêm một vài widgets. Widgets là các phần tử giao diện người dùng, như nút, nhãn, ô nhập liệu, v.v. Bắt đầu với những thứ cơ bản: tạo một nút và một nhãn.
# Import thư viện tkinter
import tkinter as tk
# Tạo cửa sổ chính của ứng dụng
root = tk.Tk()
root.title("Ứng dụng đầu tiên của tôi")
# Tạo nhãn và đặt vào cửa sổ
label = tk.Label(root, text="Xin chào, người dùng! Chào mừng đến với GUI đầu tiên của tôi.")
label.pack() # Sử dụng method pack để đặt widget
# Tạo nút và đặt vào cửa sổ
button = tk.Button(root, text="Ấn vào tôi!", command=lambda: print("Nút đã được nhấn!"))
button.pack()
# Khởi động vòng lặp chính
root.mainloop()
Giải thích
-
Nhãn (Label): Chúng ta đã tạo một nhãn với văn bản "Xin chào, người dùng! Chào mừng đến với GUI đầu tiên của tôi." bằng
Label()
. Methodpack()
ở cuối là cách đơn giản để đặt widget trên màn hình. -
Nút (Button): Nút được tạo với văn bản "Ấn vào tôi!". Chúng ta cũng truyền tham số
command
, chỉ định function cần gọi khi nút được nhấn. Ở đây command gọilambda: print("Nút đã được nhấn!")
, nên khi nhấn bạn sẽ thấy một thông báo trong console.
Như vậy, chúng ta không chỉ tạo một cửa sổ cơ bản mà còn làm cho nó trở nên tương tác! Có thể nói, chúng ta đã chuyển từ một cửa sổ đơn giản thành một "ứng dụng" nhỏ. Đây chỉ là khởi đầu — còn nhiều điều thú vị phía trước!
Hy vọng bạn thích hành trình nhập môn thế giới Tkinter này. Hãy nhớ, GUI là cơ hội để bạn thể hiện kỹ năng lập trình của mình qua hình thức trực quan. Trong bài giảng tiếp theo, chúng ta sẽ xem xét cách thêm nút và ô nhập liệu, vì vậy hãy chuẩn bị tinh thần cho các giao diện người dùng tương tác hơn nhé!
GO TO FULL VERSION