Page 223 - Em Học Python
P. 223
Chạy đoạn code này, dùng chuột bấm vào bảng vẽ, rồi thử
nhấn nút ENTER mà xem.
Liệu ta có thể thay đổi hướng đi tuỳ thuộc vào từng
phím bấm không? Tất nhiên là được rồi. Ta chỉ cần sửa
hàm movetriangle như thế này:
def movetriangle(event):
if event.keysym == 'Up':
canvas.move(1, 0, -3)
elif event.keysym == 'Down':
canvas.move(1, 0, 3)
elif event.keysym == 'Left':
canvas.move(1, -3, 0)
else:
canvas.move(1, 3, 0)
Đối tượng event được truyền vào trong hàm movetriangle có vài biến rất thú vị.
Một trong số đó là keysym (viết tắt của ký hiệu phím ⟨key symbol⟩), là một chuỗi ghi lại giá
trị thực sự của nút được nhấn trên bàn phím. Dòng if event.keysym == 'Up': nghĩa là
nếu giá trị của keysym là chuỗi 'Up', ta sẽ gọi hàm canvas.move với tham số (1, 0, -3) ở
dòng tiếp đó. Còn nếu keysym là chuỗi 'Down', trong elif event.keysym == 'Down':, ta sẽ
gọi với tham số (1, 0, 3), vân vân.
Nhớ rằng tham số đầu tiên là luôn là số hiệu của hình được vẽ ra trên bảng vẽ, tham
số thứ hai là giá trị tăng hoặc giảm của toạ độ x (chiều ngang), còn tham số thứ ba là giá trị
tăng giảm của toạ độ y (chiều dọc).
Ta sau đó bảo tkinter hàm movetriangle sẽ xử lý bốn nút khác nhau này (lên,
xuống, trái, phải). Đoạn code sau cho thấy code lúc này trông sẽ như thế nào. Để tiện cho
em, hãy nhập đoạn code này vào một cửa sổ shell mới với File ► New Window. Trước khi
chạy nhớ đặt cho file cái tên dễ nhớ chút, movingtriangle.py chẳng hạn.
Dùng tkinter để có đồ hoạ đẹp hơn 197