Lập trình một App đơn giản với Tkinter #2: Ứng dụng hiển thị lịch năm

Tiếp tục loạt bài về lập trình App bằng Python (sử dụng thư viện Tkinter), bài viết lần này sẽ hướng dẫn các bạn viết phần mềm hiển thị lịch năm. Mình sẽ giải thích về từng đoạn code, nếu các bạn có gì không hiểu thì đừng ngại hỏi dưới phần bình luận nhé!

Lưu ý: Các bạn nên biết sơ qua về Tkinter trước khi bắt đầu đọc bài viết này.

1. Preview:

Dưới đây là giao diện mà phần mềm sẽ hiển thị:

Code của phần mềm này rất đơn giản, không quá phức tạp như phần mềm mình từng làm trong số trước của bài viết. Tuy nhiên, bạn sẽ cần cài thêm 1 module trước khi bắt đầu viết đó là tkcalendar.

Để cài đặt tkcalendar rất đơn giản, bạn gõ dòng lệnh sau vào terminal:

pip install tkcalendar

2: Mã nguồn:

Dưới đây là toàn bộ mã nguồn của phần mềm:

from tkinter import *
from tkcalendar import Calendar
import datetime

root = Tk()
root.geometry("500x500")
x = datetime.datetime.now()
lich = Calendar(root,font = ("Arial", 18), selectmode = 'day',
			year = x.year, month = x.month,
			day = x.day)

lich.pack(pady = 20)
root.mainloop()

Như bạn có thể thấy, mã nguồn rất ngắn, chỉ khoảng 15 dòng.

3: Giải thích code:

Mình sẽ giải thích theo thứ tự từng dòng code để các bạn có thể dễ hiểu.

from tkinter import *
from tkcalendar import Calendar
import datetime

Dòng lệnh đầu tiên này có tác dụng thêm tất cả các chức năng và các module từ thư viện Tkinter. Ví dụ như: Label, Button,… Dòng lệnh thứ hai nạp lớp Calendar từ module tkcalendar. Còn dòng lệnh thứ ba để nạp module datetime, chúng ta cần module này để trả về ngày, tháng, năm hiện tại.

root = Tk()
root.geometry("500x500")

Dòng lệnh root = Tk() có tác dụng khởi tạo cửa sổ chính của phần mềm và dòng lệnh sau đó thiết lập kích thước của cửa sổ chính. Ở đây, mình sẽ để kích thước là 500 x 500.

root.mainloop()

Câu lệnh này là một câu lệnh cơ bản luôn để ở dòng cuối cùng. Tuy nhiên, mình muốn giới thiệu nó trước vì câu lệnh này vô cùng cần thiết để phần mềm có thể chạy được. Bạn cứ hiểu đơn giản rằng, phải có phương thức .mainloop() thì cửa sổ phần mềm mới có thể hiển thị và chạy được.

x = datetime.datetime.now()
lich = Calendar(root,font = ("Arial", 18), selectmode = 'day',
			year = x.year, month = x.month,
			day = x.day)

lich.pack(pady = 20) #hiển thị lịch trong phần mềm

Đoạn lệnh này chính là mấu chốt để phần mềm có thể chạy được. Mình sẽ giải thích thành phần quan trọng nhất trước, đó chính là Widget Calendar. Các thuộc tính của Widget này là rất nhiều nhưng trong phạm vi bài viết ngày hôm nay bạn sẽ chỉ cần để tâm tới các thuộc tính sau:

+ selectmode: cho phép người dùng chọn ngày hiển thị

+ year: hiển thị năm

+ month: hiển thị tháng

+ day: hiển thị tháng

Biến x = datetime.datetime.now() sẽ trả về toàn bộ ngày tháng năm và giờ hiện tại. Bởi vậy khi gán nó cho các thuộc tính của Calendar, bạn cần lấy từng phần của nó thôi. Ví dụ như trên mình cho year = x.year, thì “x.year” sẽ trả về năm hiện tại, tương tự với month, day.

Mong rằng sau khi đọc bài viết, bạn có thể hiểu thêm về Tkinter. Nếu thấy bài viết hữu ích, các bạn hãy đăng ký kênh Youtube mình nhé! Sắp tới, nếu có thể, mình sẽ đăng các video để hướng dẫn trực quan hơn.

Hẹn gặp lại!

Leave a comment

Design a site like this with WordPress.com
Get started