我创建了一个Canvas
,在其中创建了一个Window
,并将其中的一个Frame
包装到其中。但是,当我尝试将Entry
小部件打包到该Frame
中时,该小部件会出现在框架或画布的右下角,其中一部分在屏幕上,而一部分则处于关闭状态屏幕。
我做了什么以及如何将tkinter
小部件打包到我的Frame
中?
编辑:使用Canvas
的原因是为了以后可以滚动。
try:
import tkinter as t
from tkinter import *
except ImportError:
import Tkinter as t
from Tkinter import *
class Window:
def __init__(self, master):
canvas = Canvas(master, height=450, width=450, bg="white")
canvas.pack()
frame1 = Frame(master)
frame1.pack()
MainWindow = canvas.create_window(450,450,window=frame1)
e1 = Entry(frame1)
e1.pack()
root = Tk()
root.resizable(0,0)
root.geometry("450x450")
root.title("Test")
root.configure(background="#212F3C")
window = Window(root)
root.mainloop()
答案 0 :(得分:2)
您正在将画布放置在画布坐标系中的450、450处。由于默认锚点位于窗口的中间,因此您将位于框架的左上角。尝试将其放置在其他位置:
MainWindow = canvas.create_window(10,10,window=frame1, anchor='nw')
现在它的左上角是10,10。而且您不需要pack()
框架。 create_window()
是画布的包装方式。 (但是您确实需要将条目打包在frame1中。)