0% found this document useful (0 votes)
19 views

PythonCanBan Slide7 Tkinter Coban

đvđfdfdfhđsjdfsljdsljfflncjkb;ọkldhjdksahđldmcmdjdl;fbhđjjeu8hkdvfbdjiy22uhdemm
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

PythonCanBan Slide7 Tkinter Coban

đvđfdfdfhđsjdfsljdsljfflncjkb;ọkldhjdksahđldmcmdjdl;fbhđjjeu8hkdvfbdjiy22uhdemm
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

PYTHON CĂN BẢN

PHẦN 3 – LẬP TRÌNH GIAO DIỆN (GUI)


BẰNG TKINTER

Nguyễn Minh Triết,


Đại học Sư Phạm Kỹ Thuật Tp.HCM
Tp.HCM, 08/2022
3.1 – Tkinter cơ bản
Tkinter là thư viện (module) tạo giao diện người dùng
(GUI) cơ bản của Python
Để sử dụng ta cần “thêm” (import) thư viện này vào
chương trình theo cú pháp:
import tkinter hoặc from tkinter import *
Sau đó gọi hàm Tk()
root = Tk()
Và thêm các thành phần giao diện vào
w = Label(root, text="Hello, world!")
w.pack()
Sau đó chạy hàm mainloop(): root.mainloop()

Lập trình Python căn bản 9/26/2022 112


3.1 – Tkinter cơ bản

## File: hello1.py
from tkinter import *
root = Tk()
w = Label(root, text=‘Hello world!’, font=('Verdana’, 32))
w.grid(row=0, column=0)
root.mainloop()

Lập trình Python căn bản 9/26/2022 113


3.1 – Tkinter cơ bản
Định vị các thành phần trên GUI bằng grid
Câu lệnh: <đối_tượng>.grid(row=r, column=c)
Với r và c là số nguyên bắt đầu từ 0. Vị trí của đối
tượng sẽ tùy theo r và c như bên dưới

Ví dụ: Tạo GUI có Label giao diện như bên dưới


STT Họ và tên MSSV
01 Nguyễn Thanh Bình 21124099
02 Trần Thị Ngọc Vy 21124088
Lập trình Python căn bản 9/26/2022 114
3.1 – Tkinter cơ bản
## File: hello1.py w1.grid(row=0, column=0)
from tkinter import * w2.grid(row=1, column=0)
root = Tk() w3.grid(row=2, column=0)
w1 = Label(root, text='STT') w4.grid(row=0, column=1)
w2 = Label(root, text='01') w5.grid(row=1, column=1)
w3 = Label(root, text='02') w6.grid(row=2, column=1)
w4 = Label(root, text='Họ và tên') w7.grid(row=0, column=2)
w5 = Label(root, text='Nguyễn Thanh Bình') w8.grid(row=1, column=2)
w6 = Label(root, text='Trần Thị Ngọc Vy') w9.grid(row=2, column=2)
w7 = Label(root, text='MSSV') root.mainloop()
w8 = Label(root, text='21124099')
w9 = Label(root, text='21124088')

Lập trình Python căn bản 9/26/2022 115


3.1 – Tkinter cơ bản
Định vị các thành phần trên GUI bằng grid
Khi cần không gian lớn hơn cho đối tượng, có thể
dùng columnspan. Ví dụ

Lập trình Python căn bản 9/26/2022 116


3.1 – Tkinter cơ bản
Bài tập Tkinter cơ bản
1. Tạo giao diện GUI theo bố trí Label như sau
Công ty HCMUTE Vietnam
Sinh viên Nguyễn Minh An
MSSV 21126008

Lập trình Python căn bản 9/26/2022 117


3.1 – Tkinter cơ bản
Bài tập Tkinter cơ bản
2. Tạo giao diện GUI theo bố trí Button như sau

Lập trình Python căn bản 9/26/2022 118


3.1 – Tkinter cơ bản
Tùy chỉnh thuộc tính đối tượng trong Tkinter

Cú pháp lúc khởi tạo:


Tên_đối_tượng = Đối_tượng(thuộc_tính1=giá_trị,
thuộc_tính2=giá_trị, …)

Ví dụ:
w = Label(text="Hello“, font=('Verdana', 32))
x = Button(text=“Okay“, font=('Verdana', 32))

Lập trình Python căn bản 9/26/2022 119


3.1 – Tkinter cơ bản
Một số thuộc tính thường dùng trong Tkinter
Tên Ý nghĩa
bg Màu nền. Ví dụ: bg=‘red’
Màu được gán có thể dùng #rgb, #rrggbb,
#rrrgggbbb. Ví dụ: '#fff’ (white); '#000000’
(black); #000fff000 (green)
(Tham khảo thêm)
fg Màu chữ. Tương tự màu nền
font Kiểu chữ, cỡ chữ. Ví dụ:
font= ("Times", 20, "bold", "italic")
Kiểu font Times, cỡ 20, Kiểu in đậm và in nghiên
Lập trình Python căn bản 9/26/2022 120
3.1 – Tkinter cơ bản
Tên Ý nghĩa
font Kiểu font có thể xem trong ms.word :v
Cỡ font phải là số nguyên
Kiểu in có thể là: normal, bold, roman, italic,
underline, và overstrike.
Ví dụ: font=('Verdana', 32)
justify Vị trí trong khung. Ví dụ: justify="right“
right, left, center
wraplength Kích thước dài tối đa của khung hiện chữ.
Nếu vượt quá thì xuống hàng mới (tính theo
pixel). Ví dụ: wraplength=210
Lập trình Python căn bản 9/26/2022 121
3.1 – Tkinter cơ bản
Một số thuộc tính thường dùng trong Tkinter
Tên Ý nghĩa
borderwidth Kích thước viền của đối tượng (mặc định là
2 pixel). Ví dụ: borderwidth=30
relief Kiểu 3D của đối tượng. Ví dụ:
relief='sunken’
sunken, raised, groove, ridge, flat.
height Chiều cao khung đối tượng (pixel)
height = 5
width Chiều rộng khung đối tượng (pixcel)
width = 20
Lập trình Python căn bản 9/26/2022 122
3.1 – Tkinter cơ bản
Một số thuộc tính thường dùng trong Tkinter
Tên Ý nghĩa
anchor Canh vị trí text của đối tượng.
Ví dụ: anchor = 'w’

Lập trình Python căn bản 9/26/2022 123


3.1 – Tkinter cơ bản
Bài tập Tkinter cơ bản
3. Tại giao diện của BT2, hãy thay đổi màu, kiểu
font của các nút (tùy ý bạn)

Lập trình Python căn bản 9/26/2022 124


3.1 – Tkinter cơ bản
Cú pháp sau khi đối tượng đã khởi tạo:
Tên_đối_tượng.configure = (thuộc_tính1=giá_trị,
thuộc_tính2=giá_trị, …)
Hoặc
Tên_đối_tượng.config = (thuộc_tính1=giá_trị,
thuộc_tính2=giá_trị, …)
Ví dụ:
w.configure(text='Button clicked', font=('Verdana', 32))
w.config(text='Button clicked', font=('Verdana', 32))

Lập trình Python căn bản 9/26/2022 125


3.1 – Tkinter cơ bản
from tkinter import *
def callback():
label.configure(text='Button clicked', font=('Verdana', 32))
root = Tk()
label = Label(text='Not clicked', font=('Verdana', 32))
button = Button(text='Click me', font=('Verdana', 32), command=callback)
label.grid(row=0, column=0)
button.grid(row=1, column=0)
mainloop()

Lập trình Python căn bản 9/26/2022 126


3.1 – Tkinter cơ bản
Bài tập Tkinter cơ bản
4. Lập trình giao diện sau đây

5. Lập trình giao diện sau đây (gợi ý biến global)

Lập trình Python căn bản 9/26/2022 127


3.1 – Tkinter cơ bản
Bài tập Tkinter cơ bản
6. Lập trình giao diện game tic-tac-toe cho 2 người chơi

Lập trình Python căn bản 9/26/2022 128


3.1 – Tkinter cơ bản
Thay text của đối tượng thành hình ảnh gif
Bước 1: Gán ảnh dạng gif vào một biến (file ảnh
đặt cùng thư mục chương trình) qua hàm
PhotoImage
cheetah_image = PhotoImage(file='cheetahs.gif’)
Bước 2: Gán biến ảnh vào đối tượng bằng thuộc
tính image
label = Label(image=cheetah_image)

Lập trình Python căn bản 9/26/2022 129


3.1 – Tkinter cơ bản
Bài tập Tkinter cơ bản
7. Nâng cấp bài 6 như sau:
- Khi một bên thắng (có 3 biểu tượng cùng loại
thẳng hàng) thì đổi 3 biểu tượng đó thành hình
ngôi sao.

Lập trình Python căn bản 9/26/2022 130

You might also like