Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo bố cục GUI tkinter sử dụng Frame và Grid

Tkinter là thư viện Python nổi tiếng tạo ứng dụng dựa trên GUI. Bạn tạo ứng dụng đầy đủ tính năng với widget, hàm và mô-đun có sẵn trong Tkinter.

Đôi khi, chọn GUI phù hợp trở thành nhiệm vụ khó khăn. Tkinter đi kèm tập hợp hàm và mở rộng tích hợp tạo GUI đẹp.

Thông thường, widget Frame trong Tkinter quản lý tất cả widget trong ứng dụng như container. Nó kế thừa tất cả thuộc tính cửa sổ chính chứa. Để thiết kế bố cục widget, ta dùng bất kỳ trình quản lý hình học nào. Geometry Manager giúp tạo bố cục widget và đặt chúng theo thứ tự. Trình quản lý Grid đặt widget theo hệ tọa độ X và Y. Ta cung cấp thuộc tính row và column đặt widget bất kỳ đâu trong ứng dụng.

Ví dụ

Trong ví dụ này, ta tạo GUI mẫu Đăng ký.

# Import thư viện cần thiết
from tkinter import *

# Tạo instance của frame hoặc cửa sổ tkinter
win = Tk()

# Đặt kích thước cửa sổ
win.geometry("700x350")

# Thêm widget Frame
frame = Frame(win)

# Định nghĩa hàm lấy dữ liệu và hiển thị thông báo
def on_key_up():
    name = fname
    frame.pack_forget()
    win.configure(bg="green4")
    Label(win, text="Hey " + fname.get() + " Welcome to TutorialsPoint",
          font=('Segoe UI', 18, 'bold'),
          background="white").pack(pady=30)

# Tạo widget Label
Label(frame, text="Registration Form",
      font=('Helvetica 16 bold'), background="green3").grid(row=5, column=0, pady=30)
frame.pack()

# Thêm trường Giá trị Thứ nhất
Label(frame, text="First Name").grid(row=7, column=0, padx=5)
fname = Entry(frame)
fname.grid(row=10, column=0, padx=10)

# Thêm trường Giá trị Thứ hai
Label(frame, text="Family name").grid(row=12, column=0, padx=5)
sname = Entry(frame)
sname.grid(row=15, column=0, padx=10)

# Thêm trường Địa chỉ Email
Label(frame, text="Email address").grid(row=17, column=0, padx=5)
email = Entry(frame)
email.grid(row=20, column=0, padx=10)

# Thêm trường khác cho mật khẩu
Label(frame, text="Enter a Password").grid(row=22, column=0, padx=5)
password = Entry(frame, show="*")
password.grid(row=25, column=0, padx=10)

# Tạo nút
Button(frame, text="Register", command=on_key_up).grid(row=15, column=1, padx=5)

win.mainloop()

Kết quả

Chạy mã trên sẽ hiển thị mẫu form đăng ký và nút đăng ký thông tin.

Tạo bố cục GUI tkinter sử dụng Frame và Grid