如何在Tkinter中使用Canvas绘制一个点?

时间:2016-10-06 06:00:45

标签: python canvas tkinter

我想在Tkinter中画一个点,现在我使用Canvas来制作它,但我没有找到这样的方法在Canvas类中画一个点。 Canvas提供了一种名为crete_line(x1,y1,x2,y2)的方法,因此我尝试设置x1=x2,y1=y2来绘制一个点,但它不起作用。

所以任何人都可以告诉我如何制作它,如果使用Canvas可以做到更好,其他解决方案也会被接受。谢谢!

4 个答案:

答案 0 :(得分:3)

当我试图连续放置几个像素的序列时,上面提供的解决方案对我来说似乎不起作用。

我找到了另一个解决方案 - 将椭圆的边框宽度减小到0:

canvas.create_oval(x, y, x, y, width = 0, fill = 'white')

答案 1 :(得分:1)

使用create_line,您还有其他可能的解决方法:

canvas.create_line(x, y, x+1, y, fill="#ff0000")

它仅覆盖单个像素(从x,y到红色)

答案 2 :(得分:0)

由于Tk库(在Tk 8.6.0和8.6.9之间的某个地方)进行了更新,因此create_line的行为已更改。 要在8.6.0中的(x,y)处创建一个像素点,请添加

public getProjects(api: string): Observable<TestFields[]> {
    return this._http.get<TestFields[]>(api);
  }

现在在8.6.9上,您必须使用:

d = { b'Name': b'John', b'age': b'43' }
d = { x.decode('ascii'): d.get(x).decode('ascii') for x in d.keys() }

请注意,Debian 9使用8.6.0,而Archlinux(在2019年初)使用8.6.9,因此可移植性在几年内受到损害。

答案 3 :(得分:-1)

没有办法直接在var thingSchema = new Schema({..}, { timestamps: { createdAt: 'created_at' } }); var Thing = mongoose.model('Thing', thingSchema); var thing = new Thing(); thing.save(); // `created_at` & `updatedAt` will be included 上加点。下面的方法使用Canvas方法显示点。

试试这个:

create_oval