我已经在互联网上阅读了一些教程,但我似乎无法找到任何能告诉我如何划线的内容
有人可以帮忙吗?
我试过
p = Canvas(height = 600, width = 800).place(x=0,y=0)
p.create_rectangle(50, 25, 150, 75, fill="blue")
并且,不幸的是,它没有用。
答案 0 :(得分:5)
不完全确定你在问什么,因为你既没有向我们展示你的完整代码,也没有说明究竟什么“不起作用”。看来你已经找到了如何绘制一个矩形,同样的教程也应该有关于绘制线的东西,比如the one linked in the comments。
由于这似乎对您没有帮助,可能问题在于您使用的是Python 3,其中Tkinter
包已重命名为tkinter
。这个例子适合你:
import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.pack()
for i in range(10):
canvas.create_line(50 * i, 0, 50 * i, 400)
canvas.create_line(0, 50 * i, 400, 50 * i)
canvas.create_rectangle(100, 100, 200, 200, fill="blue")
canvas.create_line(50, 100, 250, 200, fill="red", width=10)
root.mainloop()
附录: 我刚刚注意到你的代码存在两个实际问题:
p = Canvas(height = 600, width = 800).place(x=0,y=0)
,变量p
将不分配Canvas
,但返回值为place
,即{{ 1}}。 None
添加到我的示例中的Canvas
的父元素。这是very thorough introduction to all of Tkinter,特别是Canvas元素。
答案 1 :(得分:0)
http://www.python-course.eu/tkinter_canvas.php
您的答案如何使用画布绘制任何一行。
学习tkinter的重要来源。 我希望它对你有用,就像我一样
from tkinter import *
canvas_width = 500
canvas_height = 150
def paint( event ):
python_green = "#476042"
x1, y1 = ( event.x - 1 ), ( event.y - 1 )
x2, y2 = ( event.x + 1 ), ( event.y + 1 )
w.create_oval( x1, y1, x2, y2, fill = python_green )
master = Tk()
master.title( "Painting using Ovals" )
w = Canvas(master,
width=canvas_width,
height=canvas_height)
w.pack(expand = YES, fill = BOTH)
w.bind( "<B1-Motion>", paint )
message = Label( master, text = "Press and Drag the mouse to draw" )
message.pack( side = BOTTOM )
mainloop()
我刚从网站上复制过来。