矩形对象在使用move()方法后不可见:Canvas-Tkinter



Okk,Okk,所以,我是Tkinter的新手(虽然没有我已经在其中构建了3个游戏(,这是我目前的代码:

from tkinter import *
class Paddle:
def __init__(self, Main_Frame):
Main_Frame.title("Paddle")
Main_Frame.geometry("300x300+630+150")
self.Y_Position = 288
self.Can = Canvas(Main_Frame, height = 300, width = 300)
self.Can.pack()
self.paddle = self.Can.create_rectangle(0, 288, 90, 288, width = 15, fill = "blue")
self.Can.bind("<Button-1>", self.Move_Paddle)
def Move_Paddle(self, event):
self.X_Position = event.x
self.Can.move(self.paddle, self.X_Position, self.Y_Position)
Window = Tk()
Class = Paddle(Window)
Window.mainloop()

现在,我有几个问题:数字1:画布中创建的矩形不采用";蓝色";颜色(或任何其他(。第二个:(对我来说更大(创建的矩形不可见(我不知道在哪里,我甚至在最大化Main_Frame后试图找到它(,但我在任何地方都找不到。虽然我更喜欢最简单的答案,但任何答案都是可以接受的。提前感谢!

首先,矩形是一个(或零(像素高,边框宽度为15,因此显示的是轮廓颜色(如果未指定,则默认为黑色(,而不是填充颜色。将轮廓颜色也设置为蓝色:

self.paddle = self.Can.create_rectangle(0, 288, 90, 288, width=15, fill="blue", outline="blue")

其次,move()的自变量是delta,而不是绝对的。改为使用moveto()

self.Can.moveto(self.paddle, self.X_Position, self.Y_Position)

最新更新