The first code is a simple example:
import Tkinter root = Tkinter.Tk() ch, cw = 200, 200 c1 = Tkinter.Canvas(root, height = ch, width = cw, bg = "black") c1.create_oval(30, 30, 175, 175, outline = "yellow", width = 2) c1.create_oval(30, 30, 90, 90, outline = "red", fill = "blue", width = 2) c1.create_oval(130, 130, 170, 170, outline = "blue", fill = "red", width = 2) c1.pack() root.title("Ovals") root.mainloop()
We must create a canvas using the "Canvas" method, also its dimensions are declared here.
c1 = Tkinter.Canvas(root, height = ch, width = cw, bg = "black")
Then we create an oval by using:
c1.create_oval(30, 30, 175, 175, outline = "yellow", width = 2)
The coordinates of the first point are (30, 30), and of the last point are (175, 175). The attributes of outline_color and width_size go with "outline" and "width", respectively, and if there is no fill color declared, the oval will be just a colored ring.
Then we could show the results in the screen by using the "pack" or "grid" methods.
The next examples are a little more complex but show something else.
Second code sample is:
import Tkinter
def f(x1, y1, x2, y2):
r1, b1 = "red", "blue"
c1.create_oval(x1, y1, x2, y2, outline = r1, fill = b1, width = 2)
root = Tkinter.Tk()
ch, cw = 200, 200
c1 = Tkinter.Canvas(root, height = ch, width = cw, bg = "black")
for i in range(7):
a = 0.5
f(30 + 3*a*i, 30 + a*i*i*(-1**i), 90 + 3*a*i, 90 + a*i*i)
f(100 + 3*i, 100 + 3*i, 120 + 3*i, 120 + 3*i)
f(120 + 3*i, 90 + 3*i, 125 + 3*i, 140 + 3*i)
c1.pack()
root.title("Ovals_abstract")
root.mainloop()
Third code sample is:
import Tkinter
# line: function that draws a red line
def line(a, b):
x0, y0, x1, y1 = a[0], a[1], b[0], b[1]
c1.create_line(x0, y0, x1, y1, fill = "red", width = 1)
# n : function that draws a blue circle
def n(x1, y1, x2, y2, w):
r1 = "blue"
c1.create_oval(x1, y1, x2, y2, outline = r1, width = w)
root = Tkinter.Tk()
ch, cw = 300, 300
rm = 10
A = (0.5 * cw, rm )
B = (0.5 * cw, ch - rm )
C = (rm , 0.5 * ch)
D = (cw - rm , 0.5 * ch)
c1 = Tkinter.Canvas(root, height = ch, width = cw, bg = "black")
for i in range(1, 6):
if i < 4:
a, w = 7, 1
else:
a, w = 25, 6
n(ch * 0.5 - a*i, cw * 0.5 - a*i, ch * 0.5 + a*i, cw * 0.5 + a*i, w)
a, b = ch * 0.5 - a*i, cw * 0.5 - a*i
c, d = ch * 0.5 + a*i, cw * 0.5 + a*i
# print i, a, b
# print i, c, d
line(A, B)
line(C, D)
n(50, 50, 250, 250, 6)
c1.pack()
root.title("Ovals PTR")
root.mainloop()
No comments:
Post a Comment