Heim  >  Artikel  >  Web-Frontend  >  Tkinter Tutorial Canvas Kapitel (4)

Tkinter Tutorial Canvas Kapitel (4)

黄舟
黄舟Original
2017-01-17 10:18:241446Durchsuche

''Tkinter Tutorial Canvas Kapitel (4)''


''22. Zeichne einen Bogen''


# -*- Codierung : cp936 -*-


# Erstellen Sie einen ARC

from Tkinter import *
root = Tk()

# Erstellen Sie eine Leinwand und stellen Sie deren Hintergrundfarbe auf Weiß ein

cv = Canvas(root,bg = 'white')
cv.create_arc((10,10,110,110),)
cv.pack()
root.mainloop()


# Erstellen Sie einen ARC mit Standardparametern. Das Ergebnis ist ein 90-Grad-Sektor


'''23 Legen Sie den Bogenstil fest'''


# -*- Codierung: cp936 -*-


# create create_arc.


from Tkinter import *
root = Tk()


# Erstellen Sie eine Leinwand und stellen Sie deren Hintergrundfarbe auf Weiß ein


cv = Canvas(root,bg = 'white')
d = {1:PIESLICE,2:CHORD,3:ARC}
for i in d:
cv.create_arc((10,10 + 60*i,110,110 + 60*i),style = d[i])
print i,d[i],
cv.pack()
root.mainloop()


# Verwenden Sie drei Stile, um jeweils Fächer-, Bogen- und Bogenformen zu erstellen


'''24. Stellen Sie den Winkel des Bogens ein'''


# -*- Kodierung: cp936 -*-


# Verwendung start/extent, um den Startwinkel und den Versatzwinkel anzugeben


from Tkinter import *
root = Tk()

# Erstellen Sie eine Leinwand und legen Sie deren Hintergrundfarbe auf Weiß fest


cv = Canvas(root,bg = 'white')
d = {1:PIESLICE,2:CHORD,3:ARC}
for i in d:
cv.create_arc(
(10,10 + 60*i,110,110 + 60*i),

style = d[i], #Stil angeben


start = 30, #Startwinkel angeben


extent = 30 # Winkel angeben offset


)


cv.pack()


root.mainloop()


# Verwendung drei Stile, Start gibt den Startwinkel an; Ausmaß gibt den Winkelversatz an


''' 25. Bitmap zeichnen'''


# - *- Kodierung: cp936 - *-


# Bitmap verwenden, um eine Bitmap zu erstellen create_bitmap


aus Tkinter-Import *


root = Tk( )


# Erstellen Sie eine Leinwand und stellen Sie ihre Hintergrundfarbe auf Weiß ein.

cv = Canvas(root,bg = 'white')
d = {1:'error',2:'info',3:'question',4:'hourglass'}
for i in d:
cv.create_bitmap((20*i,20*i),bitmap = d[i])
cv.pack()
root.mainloop()


# Verwenden Sie das Bitmap-Attribut, um den Namen der Bitmap anzugeben, den ersten Parameter dieser Funktion ist ein Punkt (x, y), der die obere linke Position des Bitmap-Speicherorts angibt.


''26. GIF-Bild zeichnen''


# -*- Kodierung: cp936 -*-


# Erstellen gif image create_image


from Tkinter import *


root = Tk()


# Erstellen Sie eine Leinwand und stellen Sie deren Hintergrundfarbe auf Weiß ein

cv = Canvas(root,bg = 'white')
img = PhotoImage(file = 'c:/python.gif')
cv.create_image((150,150),image = img)
cv.pack()
root.mainloop()


# Verwenden Sie zuerst PhotoImage, um ein GIF-Bild zu erstellen, und legen Sie dann das Bildattribut auf das neu erstellte Bild fest


'' '27 .Zeichne eine gerade Linie'''


# -*- programming: cp936 -*-


# Erstelle eine gerade Linie mit einem Pfeil create_line


from Tkinter import *


root = Tk()


# Erstellen Sie eine Leinwand und setzen Sie ihre Hintergrundfarbe auf Weiß

cv = Canvas(root,bg = 'white')
d = [(0,'none'),(1,'first'),(2,'last'),(3,'both')]
for i in d:
cv.create_line(
(10,10 + i[0]*20,110,110+ i[0] * 20), # 设置直线的起始、终点
arrow = i[1], # 设置直线是否使用箭头
arrowshape = '40 40 10' # 设置箭头的形状(填充长度,箭头长度,箭头宽度
)
cv.pack()
root.mainloop()


# Verwenden Sie das Pfeilattribut, um zu steuern, ob Pfeile angezeigt werden sollen


'''28 Das Verbindungsstilattribut einer geraden Linie''


# -*- Kodierung: cp936 -*-


# Erstellen Sie eine gerade Linie und verwenden Sie das Joinstyle-Attribut


aus dem Tkinter-Import *


root = Tk()


# Erstelle eine Leinwand und setze ihre Hintergrundfarbe auf Weiß


cv = Canvas(root,bg = 'white')
d = [(0,'none','bevel'),(1,'first','miter'),(2,'last','round'),(3,'both','round')]
for i in d:
cv.create_line(
(10,10 + i[0]*20,110,110+ i[0] * 20), # 设置直线的起始、终点
arrow = i[1], # 设置直线是否使用箭头
arrowshape = '8 10 3', # 设置箭头的形状(填充长度,箭头长度,箭头宽度
joinstyle = i[2],
)
cv.pack()
root.mainloop()


# Stellen Sie die Verbindungsstilattribute der geraden Linien auf Abschrägung/Gehrung/Rundung ein, um die Wirkung zu testen.


'''29. Zeichnen Sie eine Ellipse'''


# -*- Kodierung: cp936 -*-


# Zeichnen Um eine Ellipse zu erstellen, verwenden Sie das Attribut create_oval


from Tkinter import *


root = Tk()


#, um eine Leinwand zu erstellen und festzulegen seine Hintergrundfarbe auf Weiß


cv = Canvas(root,bg = 'white')


# Erstelle eine Ellipse mit einer Länge von 200 und einer Breite von 100

cv.create_oval((10,10,210,110),fill = 'red')
cv.pack()
root.mainloop()

# Geben Sie die Länge und Breite der Ellipse an. Ein Kreis ist ein Sonderfall, bei dem Länge und Breite gleich sind.


'''30. Polygon erstellen'''


# -*- Kodierung: cp936 -*-


# Polygon erstellen (Dreieck)


from Tkinter import *


root = Tk()


# Zeichnen Sie eine Leinwand und stellen Sie ihre Hintergrundfarbe auf Weiß ein


cv = Canvas(root,bg = 'white')


# Erstelle ein rechtwinkliges Dreieck


cv.create_polygon((10,10,10,200,100,200),fill = 'red')
cv.pack()
root.mainloop()

# Geben Sie die Koordinaten von drei Punkten an. Die Koordinaten der drei Punkte müssen der Definition eines Dreiecks entsprechen.


'''31. Grafiken ändern'''


# -*- Kodierung: cp936 -*-


# Polygon erstellen create_ploygon(Triangle)


from Tkinter import *


root = Tk()


# Erstelle eine Leinwand und setze ihre Hintergrundfarbe auf Weiß


cv = Canvas(root,bg = 'white')


# Erstelle ein rechtwinkliges Dreieck

cv.create_polygon((10,10,10,200,100,200),
#smooth = True, # 平滑处理,但未找到控制此参数的项
splinesteps = 0, # 不明白是控制什么的???
)
cv.pack()
root.mainloop()


# Smooth/Splinesteps wird verwendet, um die gezeichneten Grafiken zu ändern. Ich weiß nicht, welche anderen Funktionen diese beiden Parameter haben.


'''32. Text zeichnen'''


# -*- Kodierung: cp936 -*-


# Text verwenden create_text

from Tkinter import *
root = Tk()

# Erstelle eine Leinwand und setze ihre Hintergrundfarbe auf Weiß


cv = Canvas(root,bg = 'white')


# Erstellen Sie ein Textobjekt, die Standardeinstellung ist zentrierte Ausrichtung


cv.create_text((10,10),text = 'Hello Text',
anchor = W
)
cv.pack()
root.mainloop()

# Verwenden Sie den Anker, um die Position des Textes zu steuern, und verwenden Sie Ausrichten, um die Ausrichtung zu steuern


'''33. Text auswählen'''


# -*- Kodierung: cp936 -*-


# Verwenden Sie Text create_text

from Tkinter import *
root = Tk()


# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个文字对象,默认设置为居中对齐

txt = cv.create_text((10,10),text = 'Hello Text',
anchor = W
)


# 设置文本的选中起始位置


cv.select_from(txt,2)


# 设置文本的选中结束位置

cv.select_to(txt,5)
cv.pack()
root.mainloop()

# 使用anchor控制文字的位置,使用justify控制对齐方式


'''34.创建组件'''


# -*- coding: cp936 -*-


# 使用子组件create_window

from Tkinter import *
root = Tk()

# 创建一个Canvas,设置其背景色为白色


cv = Canvas(root,bg = 'white')


# 创建一个Button对象,默认设置为居中对齐


def printWindow():
print 'window'
bt = Button(cv,text = 'ClickMe',command = printWindow)


#修改button在canvas上的对齐方式


cv.create_window((10,10),window = bt,anchor = W)


# 新创建的line对象与button有重叠


cv.create_line(10,10,20,20)


# 新创建的line不在button之上,即没有重叠


cv.create_line(30,30,100,100)
cv.pack()
root.mainloop()


# 使用anchor组件在Canvas上的位置,默认情况下为居中对齐,这样使用后其它的item将不能再使用button战胜的那块区域

以上就是Tkinter教程之Canvas篇(4)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn