Xét trường hợp tạo ứng dụng GUI sao cho khi click vào cửa sổ bằng nút chuột, nó lưu tọa độ và tạo một đường line giữa hai điểm cho trước. Tkinter cung cấp các sự kiện cho phép người dùng gán phím hoặc nút với các hàm.
Để vẽ đường line giữa hai điểm, chúng ta có thể làm theo các bước chung sau:
Tạo widget canvas và pack nó để hiển thị trong cửa sổ.
Định nghĩa hàm draw_line() hoạt động như sự kiện khi người dùng thực hiện click.
Tạo biến toàn cục đếm số lần click trong canvas.
Nếu đếm thành hai, vẽ đường line giữa tọa độ thứ nhất và thứ hai.
Gán nút chuột với hàm callback để có toàn quyền kiểm soát hàm.
Ví dụ
# Import các thư viện cần thiết
from tkinter import *
from tkinter import ttk
# Tạo instance của frame hoặc window tkinter
win = Tk()
# Thiết lập kích thước cửa sổ
win.geometry("700x350")
# Định nghĩa hàm vẽ đường line giữa hai điểm
def draw_line(event):
global click_num
global x1, y1
if click_num == 0:
x1 = event.x
y1 = event.y
click_num = 1
else:
x2 = event.x
y2 = event.y
# Vẽ line ở tọa độ đã cho
canvas.create_line(x1, y1, x2, y2, fill="green", width=10)
# Tạo widget canvas
canvas = Canvas(win, width=700, height=350, background="white")
canvas.grid(row=0, column=0)
canvas.bind('', draw_line)
click_num = 0
win.mainloop()
Kết quả
Chạy code trên để hiển thị một cửa sổ. Nếu click vào widget canvas hai lần ở bất kỳ đâu, nó sẽ vẽ một đường line trong canvas.
