You are on page 1of 13

Lập trình Tkinter trong Python

Tkinter là thư viện GUI tiêu chuẩn cho Python. Tkinter trong Python cung cấp một cách nhanh chóng
và dễ dàng để tạo các ứng dụng GUI. Tkinter cung cấp giao diện hướng đối tượng cho bộ công cụ Tk
GUI.

Sau đây là các bước để tạo một ứng dụng Tkinter:

1. import Tkinter module.


2. Tạo cửa sổ chính của ứng dụng GUI.
3. Thêm một hoặc nhiều widget nói trên vào ứng dụng GUI.
4. Gọi vòng lặp sự kiện chính để các hành động có thể diễn ra trên màn hình máy tính của người
dùng.

Ví dụ:

1 # import Tkinter module


2 from tkinter import *
# Tạo cửa sổ chính của ứng dụng GUI
3 top = Tk()
4 # Gọi vòng lặp sự kiện chính để các hành động có thể diễn ra trên màn hình máy tính của
5 người dùng
6 top.mainloop()
Kết quả:
Các Widget của Tkinter trong Python
Có nhiều widget khác nhau như button, canvas, checkbutton, entry, ... chúng được sử dụng để xây
dụng các ứng dụng GUI trong Python.

No Button Mô tả

1 Button Button được sử dụng để thêm nhiều nút khác nhau vào ứng dụng python.

2 Canvas Canvas được sử dụng để vẽ các hình trên cửa sổ.

3 Checkbutton Checkbutton được sử dụng để hiển thị CheckButton trên cửa sổ.

4 Entry Entry được sử dụng để hiển thị trường văn bản một dòng cho người dùng. Nó
thường được sử dụng để nhập các giá trị của người dùng.

5 Frame Frame có thể được định nghĩa là một vùng chứa mà có thể chứa một hoặc nhiều
widget khác.

6 Label Label là một văn bản được sử dụng để hiển thị một số thông báo hoặc thông tin
cho các widget khác.

7 ListBox ListBox được sử dụng để hiển thị danh sách các tùy chọn cho người dùng.

8 Menubutton Menubutton được sử dụng để hiển thị các mục menu cho người dùng.

9 Menu Menu được sử dụng để thêm các mục menu cho người dùng.

10 Message Message được sử dụng để hiển thị hộp tin nhắn cho người dùng.

11 Radiobutton Người dùng được cung cấp các tùy chọn khác nhau và người dùng chỉ có thể
chọn một tùy chọn trong số đó.

12 Scale Nó được sử dụng để cung cấp thanh trượt cho người dùng.

13 Scrollbar Nó cung cấp thanh cuộn cho người dùng để người dùng có thể cuộn cửa sổ lên
và xuống.

14 Text Nó khác với Entry vì nó cung cấp một trường văn bản nhiều dòng cho người dùng
để người dùng có thể viết văn bản và chỉnh sửa văn bản bên trong nó.

15 Toplevel Nó được sử dụng để tạo một vùng chứa cửa sổ riêng biệt.

16 Spinbox Nó là một widget mục nhập được sử dụng để chọn từ các tùy chọn của các giá trị.

17 PanedWindow Nó giống như một widget container chứa các ô ngang hoặc dọc.

18 LabelFrame LabelFrame là một widget vùng chứa hoạt động như một container.

18 MessageBox Nó được sử dụng để hiển thị hộp thông báo trong các ứng dụng desktop.

Bố cục trong Python Tkinter


Python Tkinter cung cấp các phương thức để bố cục các widget sau.

1. Phương thức pack()


2. Phương thức grid()
3. Phương thức place()

Phương thức pack() trong Python Tkinter

Phương thức pack() được sử dụng để tổ chức widget theo khối. Vị trí các widget được thêm vào ứng
dụng python bằng phương thức pack() có thể được kiểm soát bằng cách sử dụng các tùy chọn khác
nhau được chỉ định trong lệnh gọi phương thức.

Cú pháp:

1 widget.pack(options)
Các tùy chọn (options):

 expand : Nếu expand là true thì tiện ích con sẽ mở rộng để lấp đầy khoảng trống.
 Fill : Xác định xem widget con có lấp đầy bất kỳ không gian thừa nào do trình đóng gói phân bổ cho
nó hay không hoặc giữ các kích thước tối thiểu của riêng nó: NONE(mặc định), X (chỉ điền theo
chiều ngang), Y (chỉ điền theo chiều dọc) hay BOTH (điền theo cả chiều ngang và chiều dọc ).
 side : Nó giúp xác định vị trí của widget so với widget cha.
Ví dụ:

from tkinter import *


parent = Tk()
 
redbutton = Button(parent, text = "Red", fg = "red")
redbutton.pack(side = LEFT)
greenbutton = Button(parent, text = "Black", fg = "black")
greenbutton.pack(side = RIGHT)
bluebutton = Button(parent, text = "Blue", fg = "blue")
bluebutton.pack(side = TOP)
blackbutton = Button(parent, text = "Green", fg = "green")
blackbutton.pack(side = BOTTOM)
parent.mainloop()

Kết quả:

Phương thức grid() trong Python Tkinter

Trình quản lý layout grid() sắp xếp các widget ở dạng bảng. Chúng ta có thể chỉ định các hàng và cột.
Chúng ta cũng có thể chỉ định khoảng cột (chiều rộng) hoặc chiều dài hàng (chiều cao) của widget
con.

Đây là một cách có tổ chức hơn để đặt các widget vào ứng dụng python. Cú pháp để sử dụng
phương thức grid() được đưa ra dưới đây.

1 widget.grid(options)
Dưới đây là danh sách tùy chọn của phương thức grid():

 Column: Số cột mà widget con sẽ được đặt. Cột ngoài cùng bên trái được biểu thị bằng 0.
 Columnspan: Chiều rộng của widget con. Nó đại diện cho số cột mà đến đó, cột được mở rộng.
 ipadx, ipady: Nó đại diện cho số lượng pixel cho đường viền của gidget.
 padx, pady: Nó đại diện cho số lượng pixel bên ngoài đường viền của gidget.
 row: Số hàng mà widget con sẽ được đặt. Hàng trên cùng được biểu thị bằng 0.
 rowspan: Chiều cao của widget con, tức là số hàng mà tiện ích con được mở rộng.
 Sticky: Nếu ô lớn hơn một widget, thì Sticky được sử dụng để chỉ định vị trí của widget bên trong ô.
Nó có thể là sự ghép nối của các chữ cái sticky đại diện cho vị trí của widget. Nó có thể là N, E, W,
S, NE, NW, NS, EW, ES.

Ví du:

1
from tkinter import *
2 parent = Tk()
3 name = Label(parent, text = "Name").grid(row = 0, column = 0)
4 e1 = Entry(parent).grid(row = 0, column = 1)
5 password = Label(parent, text = "Password").grid(row = 1, column = 0)
e2 = Entry(parent).grid(row = 1, column = 1)
6 submit = Button(parent, text = "Submit").grid(row = 4, column = 0)
7 parent.mainloop()
8
Kết quả:

Phương thức place() trong Python Tkinter

Trình quản lý layout place() sắp xếp các widget theo các tọa độ x và y.

Cú pháp:

1 widget.place(options)
Dưới đây là danh sách các tùy chọn:

 Anchor: Nó thể hiện vị trí chính xác của widget con trong container. Giá trị mặc định là NW (góc
trên bên trái).
 bordermode: Giá trị mặc định của kiểu đường viền là INSIDE đề cập đến việc bỏ qua giá trị gốc
bên trong đường viền. Tùy chọn còn lại là OUTSIDE.
 height, width: Nó đề cập đến chiều cao và chiều rộng của widget tính bằng pixel.
 relheight, relwidth: Chiều cao và chiều rộng có giá trị trong khoảng 0,0 và 1,0.
 relx, rely: Có giá trị trong khoảng 0,0 và 1,0, là độ lệch theo hướng ngang và dọc.
 x, y: Nó đề cập đến độ lệch ngang và dọc theo pixel.

Ví dụ:
?

1
2 from tkinter import *
3  
top = Tk()
4 top.geometry("400x250")
5 name = Label(top, text = "Name").place(x = 30, y = 50)
6 email = Label(top, text = "Email").place(x = 30, y = 90)
7 password = Label(top, text = "Password").place(x = 30, y = 130)
e1 = Entry(top).place(x = 80, y = 50)
8 e2 = Entry(top).place(x = 80, y = 90)
9 e3 = Entry(top).place(x = 95, y = 130)
10 top.mainloop()
11
Kết quả:
Tkinter Button được sử dụng để thêm các button trong ứng dụng Python. Các button này có thể hiển
thị văn bản hoặc hình ảnh để thể hiện mục đích của chúng. Bạn có thể gán một hàm hoặc một
phương thức vào một button, hàm hoặc phương thức này tự động được gọi khi click vào button đó.

Nội dung chính

 Cú pháp
 Tham số
 Phương thức của Tkinter Button trong Python
 Ví dụ Tkinter Button trong Python

Cú pháp
Sau đây là cú pháp của Tkinter Button trong Python:

1 W = Button(parent, options)

Tham số
 parent: đại diện cho cửa sổ cha.
 options: Dưới đây là danh sách các tùy chọn thường được sử dụng nhất cho Button trong Python.
Các tùy chọn này có thể được sử dụng như các cặp key-value được phân tách bằng dấu phẩy.

No Option Mô tả

1 activebackground Nó đại diện cho màu nền của button khi con trỏ chuột di chuyển đến button.

2 activeforeground Nó đại diện cho màu chữ của button khi con trỏ chuột di chuyển đến button.

3 Bd Nó thể hiện chiều rộng đường viền tính bằng pixel.

4 Bg Nó thể hiện màu nền của button.

5 Command Khi button được click thì hàm chỉ định được thực thi.

6 Fg Màu nền trước (văn bản).


7 Font Phông chữ văn bản được sử dụng cho nhãn của button.

8 Height Chiều cao của button. Chiều cao được biểu thị bằng số dòng văn bản đối với
dòng văn bản hoặc số pixel đối với hình ảnh.

9 Highlightcolor Highlight văn bản khi focus.

10 Image Cài đặt hình ảnh cho button.

11 justify Căn chỉnh nhiều dòng văn bản. LEFT cho điều chỉnh bên trái, RIGHT cho
điều chỉnh bên phải và CENTER cho chính giữa.

12 Padx Phần đệm bổ sung cho button theo hướng ngang.

13 pady Phần đệm bổ sung cho button theo hướng dọc.

14 Relief Loại đường viền. Nó có thể là SUNKEN, RAISED, GROOVE và RIDGE.

15 State Nó có thể được gán cho DISABLED để vô hiệu hóa button (không thể click)
hoặc ACTIVE là kích hoạt (có thể click).

16 Underline Mặc định là -1, nghĩa là không có ký tự nào của văn bản trên button sẽ được
gạch dưới. Nếu không âm, ký tự văn bản tương ứng sẽ được gạch chân.

17 Width Độ dài của button.

18 Wraplength Nếu giá trị này được đặt thành một số dương, các dòng văn bản sẽ được
bao để vừa với độ dài này.

Phương thức của Tkinter Button trong Python


Sau đây là các phương thức thường được sử dụng cho Button trong Python:

No Phương thức Mô tả
1 flash() Làm cho button nhấp nháy nhiều lần giữa màu đang hoạt động và màu bình
thường.

2 invoke() Gọi lệnh callback của button và trả về những gì mà hàm đó trả về. Không có
tác dụng nếu nút bị vô hiệu hóa.

Ví dụ Tkinter Button trong Python


Ví dụ 1:

1 from tkinter import *


2 top = Tk()
3 top.geometry("200x100")
4 b = Button(top, text = "Button")
b.pack()
5
top.mainloop()
6
Kết quả:

Ví dụ 2:

1 from tkinter import *


from tkinter import messagebox
2
3  
top = Tk()
4 top.geometry("200x100")
5  
6 def clickRedButton():
7     messagebox.showinfo("Hello", "Red Button clicked")
8  
9 def clickBlueButton():
    messagebox.showinfo("Hello", "Blue Button clicked")
10  
11 b1 = Button(top, text = "Red", command = clickRedButton, activeforeground = "red",
12 activebackground = "pink", pady = 10)
b2 = Button(top, text = "Blue", command = clickBlueButton, activeforeground = "blue",
13 activebackground = "pink", pady = 10)
14 b3 = Button(top, text = "Green", activeforeground = "green", activebackground = "pink",
15 pady = 10)
16 b4 = Button(top, text = "Yellow", activeforeground = "yellow", activebackground = "pink",
17 pady = 10)
b1.pack(side = LEFT)
18 b2.pack(side = RIGHT)
19 b3.pack(side = TOP)
20 b4.pack(side = BOTTOM)
21 top.mainloop()
Kết quả:
Canvas trong Python được sử dụng để thêm đồ họa có cấu trúc vào ứng dụng python. Nó được sử
dụng để vẽ biểu đồ và biểu đồ cho ứng dụng python. Cú pháp để sử dụng canvas được đưa ra bên
dưới.

1 w = canvas(parent, options)
Dưới đây là danh sách các tùy chọn:

No Option Mô tả

1 bd Biểu thị chiều rộng đường viền. Chiều rộng mặc định là 2.

2 bg Nó đại diện cho màu nền của canvas.

3 confine Nó được sử dụng để làm cho canvas không thể cuộn được bên ngoài vùng
cuộn.

4 cursor Con trỏ được sử dụng làm mũi tên, hình tròn, dấu chấm, v.v. trên canvas.

5 height Cài đặt chiều cao cho canvas.

6 highlightcolor Nó đại diện cho màu nổi bật khi khi canvas được focus.

7 relief Nó đại diện cho loại đường viền. Các giá trị có thể là SUNKEN, RAISED,
GROOVE và RIDGE.

8 scrollregion Nó đại diện cho các tọa độ được chỉ định dưới dạng bộ tuple chứa vùng của
canvas.

9 width Nó đại diện cho chiều rộng của canvas.

10 xscrollincrement Cài đặt hình ảnh cho button.

11 xscrollcommand Nếu canvas có thể cuộn được, thuộc tính này phải là phương thức .set() của
thanh cuộn ngang.

12 yscrollincrement Hoạt động giống như xscrollincrement, nhưng điều chỉnh chuyển động theo
chiều dọc.

13 yscrollcommand Nếu canvas có thể cuộn được, thuộc tính này phải là phương thức .set () của
thanh cuộn dọc.

Nội dung chính

 Ví dụ Tkinter Canvas trong Python

Ví dụ Tkinter Canvas trong Python


Ví dụ 1:

1  
Kết quả:

Ví dụ 2:

1
from tkinter import *
2
 
3 top = Tk()
4 top.geometry("200x200")
5 # tao mot canvas
6 c = Canvas(top,bg = "pink",height = "200",width = 200)
arc = c.create_arc((5,10,150,200),start = 0,extent = 150, fill= "white")
7
c.pack()
8 top.mainloop()
9
Kết quả:

You might also like