icantech
Lập trình Python
16991
22/12/2023

Tkinter Python là gì? Tất cả những gì bạn cần biết về Tkinter

Tkinter là một thư viện trong Python giúp tạo ra giao diện đồ họa người dùng (GUI), giúp người dùng tương tác với ứng dụng một cách trực quan, từ ứng dụng đơn giản như cửa sổ đăng nhập đến các ứng dụng phức tạp hơn như trình duyệt web hoặc ứng dụng quản lý dữ liệu. Đây là một công cụ mạnh mẽ giúp những người mới bắt đầu với lập trình GUI có thể dễ dàng tiếp cận và tạo ra các ứng dụng chất lượng. Trong bài viết dưới đây, hãy cùng ICANTECH tìm hiểu về giao diện bằng Python trên thư viện Tkinter nhé!

1. Tổng quan về tkinter trong Python

1.1. Tkinter Python là gì?

Tkinter là một thư viện trong ngôn ngữ lập trình Python được sử dụng để tạo giao diện đồ họa người dùng (GUI). "Tkinter" là viết tắt của "Tk interface,", một toolkit đồ họa cung cấp các công cụ để phát triển giao diện người dùng.

Tkinter là một phần của thư viện tiêu chuẩn của Python và đã được tích hợp sẵn trong hầu hết các cài đặt Python. Điều này giúp cho Tkinter trở thành một lựa chọn phổ biến cho việc phát triển ứng dụng với giao diện đồ họa đơn giản trong Python.

Một số đặc điểm của Tkinter bao gồm khả năng tạo các thành phần giao diện như cửa sổ, nút, ô văn bản, và các widget khác để tương tác với người dùng. Tkinter cung cấp cả các sự kiện và phương thức để xử lý tương tác người dùng và thay đổi trạng thái của ứng dụng.

1.2. Ví dụ

Ví dụ đoạn code để tạo 1 màn hình giao diện cơ bản trong tkinter:

from tkinter import Tk, Frame, BOTH

 class Example(Frame):

    def __init__(self, parent):

        Frame.__init__(self, parent, background="white")

        self.parent = parent

        self.initUI()

      def initUI(self):

        self.parent.title("Simple")

        self.pack(fill=BOTH, expand=1)

  root = Tk()

root.geometry("250x150+300+300")

app = Example(root)

root.mainloop()

Kết quả 

tkinter

2. Các Widget của tkinter trong Python 

Trong Tkinter, có nhiều widget (đối tượng) khác nhau mà bạn có thể sử dụng để tạo các ứng dụng giao diện người dùng như:

2.1. Label (Nhãn)

Thông thường nhãn được hiển thị văn bản hoặc hình ảnh tĩnh.

from tkinter import *

root = Tk()

label = Label(root, text="Hello, Tkinter!")

label.pack()

root.mainloop()

2.2. Tkinter Button (Nút)

Tkinter Button hay còn gọi là Python Tkinter Button (nút). Để thêm nút có thể nhấn, bạn sử dụng đoạn code sau:

from tkinter import *

def click_me():

    label.config(text="Button was clicked!")

root = Tk()

button = Button(root, text="Click Me!", command=click_me)

button.pack()

label = Label(root, text="")

label.pack()

root.mainloop()

2.3. Entry trong Python 

Entry (Ô nhập liệu): Để nhập văn bản từ người dùng.

from tkinter import *

def show_text():

    label.config(text=entry.get())

root = Tk()

entry = Entry(root)

entry.pack()

button = Button(root, text="Show Text", command=show_text)

button.pack()

label = Label(root, text="")

label.pack()

root.mainloop()

2.4 Checkbutton (Nút kiểm tra)

Checkbutton hay còn gọi là nút kiểm tra cho phép người dùng chọn nhiều tùy chọn.

from tkinter import *

def show_selection():

    label.config(text="Selected: " + var.get())

root = Tk()

var = StringVar()

check = Checkbutton(root, text="Check me!", variable=var, onvalue="Checked", offvalue="Unchecked")

check.pack()

button = Button(root, text="Show Selection", command=show_selection)

button.pack()

label = Label(root, text="")

label.pack()

root.mainloop()

2.5. Radio Button (Nút chọn)

Radio button cho phép người dùng chọn một tùy chọn duy nhất từ một nhóm.

from tkinter import *

def show_choice():

    label.config(text="Selected: " + var.get())

root = Tk()

var = StringVar()

radio1 = Radiobutton(root, text="Option 1", variable=var, value="Option 1")

radio1.pack()

radio2 = Radiobutton(root, text="Option 2", variable=var, value="Option 2")

radio2.pack()

button = Button(root, text="Show Choice", command=show_choice)

button.pack()

label = Label(root, text="")

label.pack()

root.mainloop()

Các widget được ICANTECH nêu ở trên đều là những widget cơ bản, thường gặp. Ngoài ra, còn có một số widget khác mà bạn có thể tham khảo:

tkinter

3. Bố cục trong Python Tkinter

Tkinter cung cấp một số phương pháp để sắp xếp các widget, trong đó có ba phương pháp chính:

  • Pack Layout
  • Grid Layout
  • Place Layout

3.1. Pack Layout

Phương pháp này cho phép bạn sắp xếp các widget dọc theo một trục (thường là theo chiều dọc) và chiếm không gian tối đa trên cửa sổ.

Các widget được thêm vào cửa sổ bằng cách sử dụng phương thức widget.pack(options)

# Import toàn bộ các widget và các hàm từ thư viện tkinter

from tkinter import *

# Tạo một cửa sổ gốc và gán nó vào biến parent

parent = Tk()

# Tạo một nút màu đỏ với chữ "Red" và màu chữ là đỏ

redbutton = Button(parent, text="Red", fg="red")

# Đặt nút màu đỏ ở bên trái của cửa sổ gốc

redbutton.pack(side=LEFT)

# Tạo một nút màu đen với chữ "Black" và màu chữ là đen

greenbutton = Button(parent, text="Black", fg="black")

# Đặt nút màu đen ở bên phải của cửa sổ gốc

greenbutton.pack(side=RIGHT)

# Tạo một nút màu xanh với chữ "Blue" và màu chữ là xanh

bluebutton = Button(parent, text="Blue", fg="blue")

# Đặt nút màu xanh ở đỉnh của cửa sổ gốc

bluebutton.pack(side=TOP)

# Tạo một nút màu xanh lá cây với chữ "Green" và màu chữ là xanh lá cây

blackbutton = Button(parent, text="Green", fg="green")

# Đặt nút màu xanh lá cây ở đáy của cửa sổ gốc

blackbutton.pack(side=BOTTOM)

# Khởi chạy vòng lặp chính của ứng dụng, đảm bảo cửa sổ hiển thị và phản hồi với người dùng

parent.mainloop()

Kết quả

tkinter

3.2 Grid Layout

Phương pháp này giúp phép bạn sắp xếp các widget dựa trên một lưới ô. Tương ứng với mỗi widget được đặt tại một hàng và một cột cụ thể.

Các widget được thêm vào cửa sổ bằng cách sử dụng phương thức widget.grid(options)

# Import toàn bộ các widget và các hàm từ thư viện tkinter

from tkinter import *

# Tạo một cửa sổ gốc và gán nó vào biến parent

parent = Tk()

# Tạo nhãn với văn bản "Name" và đặt nó tại hàng 0, cột 0

name_label = Label(parent, text="Name")

name_label.grid(row=0, column=0)

# Tạo một ô nhập liệu và đặt nó tại hàng 0, cột 1

e1 = Entry(parent)

e1.grid(row=0, column=1)

# Tạo nhãn với văn bản "Password" và đặt nó tại hàng 1, cột 0

password_label = Label(parent, text="Password")

password_label.grid(row=1, column=0)

# Tạo một ô nhập liệu và đặt nó tại hàng 1, cột 1

e2 = Entry(parent)

e2.grid(row=1, column=1)

# Tạo nút với văn bản "Submit" và đặt nó tại hàng 4, cột 0

submit_button = Button(parent, text="Submit")

submit_button.grid(row=4, column=0)

# Khởi chạy vòng lặp chính của ứng dụng, đảm bảo cửa sổ hiển thị và phản hồi với người dùng

parent.mainloop()

Kết quả:

tkinter

3.3. Place Layout

Phương pháp này cho phép bạn chỉ định vị trí cụ thể của các widget trên cửa sổ. Như vậy, bạn cần chỉ định tọa độ (x, y) của widget để đặt chúng trên cửa sổ.

Các widget được thêm vào cửa sổ bằng cách sử dụng phương thức widget.place(options)

# Import toàn bộ các widget và các hàm từ thư viện tkinter

from tkinter import *

# Tạo một cửa sổ gốc và gán nó vào biến top

top = Tk()

# Đặt kích thước cửa sổ là 400x250 pixel

top.geometry("400x250")

# Tạo nhãn với văn bản "Name" và đặt nó ở tọa độ (x=30, y=50)

name_label = Label(top, text="Name")

name_label.place(x=30, y=50)

# Tạo nhãn với văn bản "Email" và đặt nó ở tọa độ (x=30, y=90)

email_label = Label(top, text="Email")

email_label.place(x=30, y=90)

# Tạo nhãn với văn bản "Password" và đặt nó ở tọa độ (x=30, y=130)

password_label = Label(top, text="Password")

password_label.place(x=30, y=130)

# Tạo ô nhập liệu và đặt nó ở tọa độ (x=80, y=50)

e1 = Entry(top)

e1.place(x=80, y=50)

# Tạo ô nhập liệu và đặt nó ở tọa độ (x=80, y=90)

e2 = Entry(top)

e2.place(x=80, y=90)

# Tạo ô nhập liệu và đặt nó ở tọa độ (x=95, y=130)

e3 = Entry(top)

e3.place(x=95, y=130)

# Khởi chạy vòng lặp chính của ứng dụng, đảm bảo cửa sổ hiển thị và phản hồi với người dùng

top.mainloop()

Kết quả:

tkinter

4. Lời Kết

Trong bài viết trên, ICANTECH đã cùng bạn khám phá tổng quan về Tkinter cũng như các khái niệm cơ bản như cách tạo cửa sổ, các widget, đến việc sắp xếp và tương tác với người dùng. Hi vọng bài viết này đã giúp bạn có cái nhìn tổng quan hơn về Tkinter trong Python. 

Cảm ơn bạn đã đọc bài viết, nếu bạn đang quan tâm đến học lập trình thì hãy tham khảo ngay các khóa học lập trình online dưới đây tại ICANTECH nhé

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình Python

Bài tương tự