使用框架和網格建立 tkinter GUI 佈局


Tkinter 是一個用於建立基於 GUI 的應用程式的知名 Python 庫。藉助 Tkinter 庫中已存在的部件、函式和模組,您可以建立功能齊全的應用程式。

有時,為許多人選擇合適的應用程式 GUI 會成為一項艱鉅的任務。Tkinter 帶有一組內建函式和擴充套件,可以建立美觀的 GUI。

通常,Tkinter 中的 Frame 部件作為容器管理應用程式中的所有部件。它繼承了主視窗可以包含的所有屬性。為了設計部件的佈局,我們可以使用任何幾何管理器。幾何管理器有助於建立部件的佈局並以一定的順序放置它們。Grid 幾何管理器以 X 和 Y 座標系的形式放置所有部件。我們可以提供 **行** 和 **列** 屬性以將部件放置在應用程式中的任何位置。

示例

在本例中,我們將建立登錄檔單的 GUI。

# Import the Required libraries
from tkinter import *

# Create an instance of tkinter frame or window
win = Tk()

# Set the size of the window
win.geometry("700x350")

# Add a Frame widget
frame = Frame(win)

# Define a function to get the data and display a message
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)
# Create a Label widget
   Label(frame, text="Registration Form",
   font=('Helvetica 16 bold'),
background="green3").grid(row=5, column=0, pady=30)
frame.pack()

# Add Field for First Value
Label(frame, text="First Name").grid(row=7, column=0, padx=5)
fname = Entry(frame)
fname.grid(row=10, column=0, padx=10)

# Add Field for Second Value
Label(frame, text="Family name").grid(row=12, column=0, padx=5)
sname = Entry(frame)
sname.grid(row=15, column=0, padx=10)

# Add Field for Email Address
Label(frame, text="Email address").grid(row=17, column=0, padx=5)
email = Entry(frame)
email.grid(row=20, column=0, padx=10)

# Add another field for accepting password value
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)

# Create a button
Button(frame, text="Register", command=on_key_up).grid(row=15,
column=1, padx=5)

win.mainloop()

輸出

執行以上程式碼將顯示登錄檔單模板和一個按鈕來註冊資訊。

更新於: 2021年6月7日

4K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告