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
   218   219   220   221   222   223   224   225   226   227   228