我正在嘗試在 Tkinter 中使用.pack(). 我想把 放在loginFrame小視窗的中央。在里面loginFrame,密碼部分頂部的用戶名部分。
def main():
window = tk.Tk()
window.geometry("400x200")
window.title("PySploit")
window.resizable(False, False)
window.configure(background="#E1E5F2")
loginFrame = tk.Frame(window).pack(anchor="center")
usernameFrame = tk.Frame(loginFrame).pack(side=LEFT)
passwordFrame = tk.Frame(loginFrame).pack(side=LEFT)
tk.Label(usernameFrame, text="Username").pack(side=LEFT)
tk.Entry(usernameFrame, name="username").pack(side=LEFT)
tk.Label(passwordFrame, text="Password").pack(side=LEFT)
tk.Entry(passwordFrame, name="password").pack(side=LEFT)
window.mainloop()
return
if __name__ == "__main__":
main()
這是我的錯誤輸出:

uj5u.com熱心網友回復:
對于您的要求,您不需要usernameFrameand passwordFrame,就loginFrame足夠了。
您可以loginFrame使用place()代替將這些標簽和按鈕放在視窗的中心,并loginFrame使用grid():
import tkinter as tk
def main():
window = tk.Tk()
window.geometry("400x200")
window.title("PySploit")
window.resizable(False, False)
window.configure(background="#E1E5F2")
loginFrame = tk.Frame(window)
# place loginFrame at the center of window
loginFrame.place(relx=0.5, rely=0.5, anchor='c')
# use grid() instead of pack() to lay out labels and entries
tk.Label(loginFrame, text="Username").grid(row=0, column=0)
tk.Entry(loginFrame, name="username").grid(row=0, column=1)
tk.Label(loginFrame, text="Password").grid(row=1, column=0)
tk.Entry(loginFrame, name="password").grid(row=1, column=1)
window.mainloop()
if __name__ == "__main__":
main()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383487.html
