Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用move()方法后矩形对象不可见:Canvas-Tkinter_Python_Tkinter_Canvas - Fatal编程技术网

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

Python 使用move()方法后矩形对象不可见:Canvas-Tkinter,python,tkinter,canvas,Python,Tkinter,Canvas,好的,好的,所以,我是Tkinter的新手(虽然我已经在Tkinter中构建了3个游戏),下面是我当前的代码: from tkinter import * class Paddle: def __init__(self, Main_Frame): Main_Frame.title("Paddle") Main_Frame.geometry("300x300+630+150") self.Y_Posit

好的,好的,所以,我是Tkinter的新手(虽然我已经在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()
从tkinter导入*
班级桨:
def uuu init uuuu(自,主框架):
主框架标题(“桨”)
主框架几何结构(“300x300+630+150”)
self.Y_位置=288
self.Can=Canvas(主框架,高度=300,宽度=300)
self.Can.pack()
self.patle=self.Can.create_矩形(0,288,90288,width=15,fill=“blue”)
self.Can.bind(“,self.Move\u桨)
def移动桨(自身,事件):
self.X_位置=事件.X
self.Can.move(self.patle,self.X_位置,self.Y_位置)
Window=Tk()
类=桨(窗口)
Window.mainloop()
现在,我有几个问题: 第一名: 在画布中创建的矩形不采用“蓝色”(或任何其他颜色)。 第二名:(对我来说更大) 创建的矩形不可见(我不知道在哪里,我甚至试图在最大化主框架后找到它),但我在任何地方都找不到它。 虽然我更喜欢最简单的答案,但任何答案都是可以接受的。
提前谢谢

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

self.paile=self.Can.创建一个矩形(0288,90288,宽度=15,fill=“blue”,outline=“blue”)
其次,
move()
的参数是增量,而不是绝对值。改用
moveto()

self.Can.moveto(self.patle,self.X\u位置,self.Y\u位置)

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

self.paile=self.Can.创建一个矩形(0288,90288,宽度=15,fill=“blue”,outline=“blue”)
其次,
move()
的参数是增量,而不是绝对值。改用
moveto()

self.Can.moveto(self.patle,self.X\u位置,self.Y\u位置)

Ohh,我想这样做就行了。非常感谢你!哦,这很有效,正如我所希望的。非常感谢你!