我有一些像
这样的代码from tkinter import *
root = Tk()
root.geometry("800x700+0+0")
#---------Backgroud of the main canvas-----`enter code here`-------
backGroundCanvas = Canvas(root,bg = 'white', width = 800, height = 600)
backGroundCanvas.focus_set()
backGroundCanvas.pack()
#--------------------------------------------------
#--------The other widgets out of the canvas--------
scoreLabel = Label(root, text = 'Your score is: 0', bg = 'red')
scoreLabel.place(x = 300, y = 750)
scoreLabel.pack()
root.mainloop()
但无论我如何更改place方法的参数,标签总是在同一个地方而且无法更改。我不知道为什么!请帮帮我,非常感谢!
答案 0 :(得分:2)
在TKinter中有三个基本的几何管理器:Grid,Pack,Place。
你应该尽量避免使用地方代替Grid或pack(我个人认为只有网格是一个好的经理,但这只是我的意见)。
在您的代码中,您使用场所管理器为窗口小部件设置位置,然后将控件提供给打包管理器。只需删除scoreLabel.pack()
et voila!
注意:你的应用程序是700px高,并且你试图将你的红色标签从顶部放置在750px,你的小部件将在屏幕之外。
NBB:我强烈建议使用网格管理器。
from tkinter import *
root = Tk()
root.geometry("800x700+0+0")
#---------Backgroud of the main canvas-----`enter code here`-------
backGroundCanvas = Canvas(root,bg = 'white', width = 800, height = 600)
backGroundCanvas.focus_set()
backGroundCanvas.pack()
#--------------------------------------------------
#--------The other widgets out of the canvas--------
scoreLabel = Label(root, text = 'Your score is: 0', bg = 'red')
scoreLabel.place(x = 300, y = 600)
root.mainloop()