我第一次摆弄 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)
问题是这样的:
mw_frame1 = Frame(main_window).pack()
Run Code Online (Sandbox Code Playgroud)
这设置mw_frame1为None,因为pack()返回None。因此,当您尝试使其他窗口小部件成为该窗口小部件的子窗口时,它们实际上成为根窗口的子窗口。因为它们是根窗口的子窗口,所以它们被打包在您意想不到的地方。
将您的调用移至pack()单独的语句:
mw_frame1 = Frame(...)
mw_frame2 = Frame(...)
...
mw_frame1.pack(...)
mw_frame2.pack(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3271 次 |
| 最近记录: |