Tkinter教程之Canvas篇 3

2021-07-14 19:13:49 字數 4821 閱讀 5220

'''25.繪製位圖'''

# -*- coding: utf-8 -*-

# 使用bitmap建立點陣圖create_bitmap

from tkinter import *

root = tk()

# 建立乙個canvas,設定其背景色為白色

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

d =

for i in d:

cv.create_bitmap((20 * i, 20 * i), bitmap=d[i])

cv.pack()

root.mainloop()

# 使用bitmap屬性來指定點陣圖的名稱,這個函式的第乙個引數為乙個點(x,y)指定位圖存放位置的左上位置。

'''26.繪製gif影象'''

# -*- coding: utf-8 -*-

# 建立gif影象create_image

from tkinter import *

root = tk()

# 建立乙個canvas,設定其背景色為白色

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

img = photoimage(file='d:/1.png')

cv.create_image((150, 150), image=img)

cv.pack()

root.mainloop()

# 先使用photoimage建立gif影象,再將image屬性來設定為新建立的img

'''27.繪製直線'''

# -*- coding: utf-8 -*-

# 建立帶箭頭的直線create_line

from tkinter import *

root = tk()

# 建立乙個canvas,設定其背景色為白色

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()

# 使用arrow屬性來控制是否顯示箭頭

'''28.直線的joinstyle屬性'''

# -*- coding: utf-8 -*-

# 建立直線,使用joinstyle屬性

from tkinter import *

root = tk()

# 建立乙個canvas,設定其背景色為白色

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()

# 將直線的屬性joinstyle分別設定為bevel/miter/round,測試其效果。

'''29.繪製橢圓'''

# -*- coding: utf-8 -*-

# 繪製橢圓,使用create_oval屬性

from tkinter import *

root = tk()

# 建立乙個canvas,設定其背景色為白色

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

# 建立乙個長200,寬100的橢圓

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

cv.pack()

root.mainloop()

# 指定橢圓的長和寬,圓是長和寬相等的特殊情況。

'''30.建立多邊形'''

# -*- coding: utf-8 -*-

# 建立多邊形(三角形)

from tkinter import *

root = tk()

# 繪製乙個canvas,設定其背景色為白色

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

# 建立乙個直角三角形

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

cv.pack()

root.mainloop()

# 指定三個點的座標,三個點座標必須滿足三角形的定義。

'''31.修飾圖形'''

# -*- coding: utf-8 -*-

# 建立多邊形create_ploygon(三角形)

from tkinter import *

root = tk()

# 建立乙個canvas,設定其背景色為白色

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

# 建立乙個直角三角形

cv.create_polygon((10, 10, 10, 200, 100, 200),

# smooth = true, # 平滑處理,但未找到控制此引數的項

splinesteps=0, # 不明白是控制什麼的???

)cv.pack()

root.mainloop()

# smooth/splinesteps用來修改繪製的圖形,不明白這兩個引數還有其它什麼作用。

'''32.繪製文字'''

# -*- coding: utf-8 -*-

# 使用文字create_text

from tkinter import *

root = tk()

# 建立乙個canvas,設定其背景色為白色

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

# 建立乙個文字物件,預設設定為居中對齊

cv.create_text((10, 10), text='hello text',

anchor=w

)cv.pack()

root.mainloop()

# 使用anchor控制文字的位置,使用justify控制對齊方式

'''33.選中文字'''

# -*- coding: utf-8 -*-

# 使用文字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: utf-8 -*-

# 使用子元件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教程之Message篇

tkinter教程之message篇 message也是用來顯示文字的,用法與label基本一樣 1.建立乙個簡單的message from tkinter import root tk 執行程式,可以看到hello之後,message顯示在它的下一行,這也是message的乙個特性。label沒有...

Tkinter使用教程之Android測試工具

實戰解析 from tkinter import from tkinter import ttk def create window 建立視窗 root tk root.title androidtool root.geometry 360x282 root.resizable 0,0 標題行功能 ...

OpenGL教程之著色

jeff molofee nehe 的opengl 教程 著色 原 文 lesson 3 colors 譯 者 cker 上一課中我教給您三角形和四邊形的繪製方法。這一課我將教您給三角形和四邊形新增2種不同型別的著色方法。使用單調著色 flat coloring 給四邊形塗上固定的一種顏色。使用平滑...