''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)!