tkinter 框架无法正常工作

1 tkinter python-3.x

我第一次摆弄 tkinter 模块,不太确定为什么我的小部件没有显示在正确的框架中?

“文本”和“输入”小部件应该显示在窗口上半部分的顶部,而“按钮”和“输出”小部件应该显示在窗口下半部分的顶部吗?

谢谢

from tkinter import *

main_window = Tk()
main_window.title("X SQUARED CALCULATOR")
main_window.geometry("300x300")
mw_frame1 = Frame(main_window).pack()
mw_frame2 = Frame(main_window).pack()

text_widget1 = Label(mw_frame1, text="Please enter a value:").pack(side=TOP)
entry_widget1 = Entry(mw_frame1, text="Please enter a value.").pack(side=TOP)
button_widget1 = Button(mw_frame2, text='Press to calculate!').pack(side=TOP)
output_widget1 = Label(mw_frame2, text="THIS IS WHERE THE NUMBER WILL APPEAR").pack(side=TOP)

main_window.mainloop()
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 5

问题是这样的:

mw_frame1 = Frame(main_window).pack()
Run Code Online (Sandbox Code Playgroud)

这设置mw_frame1None,因为pack()返回None。因此,当您尝试使其他窗口小部件成为该窗口小部件的子窗口时,它们实际上成为根窗口的子窗口。因为它们是根窗口的子窗口,所以它们被打包在您意想不到的地方。

将您的调用移至pack()单独的语句:

mw_frame1 = Frame(...)
mw_frame2 = Frame(...)
...
mw_frame1.pack(...)
mw_frame2.pack(...)
Run Code Online (Sandbox Code Playgroud)