繁体   English   中英

为什么我不能使用网格功能?

[英]Why can't I use the grid function?

我无法在 Mac 上的 Python 3 中使用 Tkinter 中的grid函数。 每当我尝试运行它时,IDLE 停止响应,我必须退出它,但是当我使用.pack()函数时它运行良好。

from tkinter import *



class MainWindow:
    def __init__(self):
        window = Tk()
        frame = Frame(window, width=600, height=800)
        frame.pack(expand=True)
        btframe = Frame(window)
        btframe.pack(side=BOTTOM, expand=True)

        self.intro = Label(frame, text="Welcome to your personal email client", font =("Courier", 20, "bold"))
        self.name = Label(frame, text="\nName",foreground="red", font=("Helvetica",16,"bold"))
        self.password = Label(frame, text="\nPassword", foreground="blue", font=("Helvetica",16,"bold"))

        self.entry1 = Entry(frame)
        self.entry2 = Entry(frame)

        self.intro.pack()
        self.name.grid(row=1, column=2)
        self.entry1.grid(row=1, column=3)
        self.password.grid(row=3, column=2)
        self.entry2.grid(row=3, column=3)


        self.submitB = Button(btframe, text="Submit", command= self.display)
        self.quitB = Button(btframe, text="Quit", command=window.destroy)
        self.submitB.pack()
        self.quitB.pack()
        window.mainloop()

    def display(self):
        print("Submitted Succesfully")


MainWindow()

这是因为您试图在共享同一父级的小部件上使用gridpack 具体来说,您将pack用于self.intro和 grid 用于self.name但它们都共享frame的公共父级。

使用其中之一,而不是两者。 您可以同时使用两者,但前提是小部件不共享公共父级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM