Python-Tkinter 組件之Canvas

Canvas

Canvas(畫布)組件為 Tkinter 的圖形繪制提供了基礎(chǔ)。Canvas 是一個(gè)高度靈活的組件,你可以用它繪制圖形和圖表,創(chuàng)建圖形編輯器,并實(shí)現(xiàn)各種自定義的小部件。

何時(shí)使用 Canvas 組件?

Canvas 是一個(gè)通用的組件,通常用于顯示和編輯圖形。你可以用它來繪制線段、圓形、多邊形,甚至是繪制其它組件。

用法

在 Canvas 組件上繪制對(duì)象,可以用 create_xxx() 的方法(xxx 表示對(duì)象類型,例如線段 line,矩形 rectangle,文本 text 等):

from tkinter import *

root = Tk()

canvas = Canvas(root, width=200, height=200)
canvas.pack()

# 繪制線
line1 = canvas.create_line(0, 100, 200, 100, fill='blue')
line2 = canvas.create_line(100, 0, 100, 200, fill='red')

# 繪制矩形
rect1 = canvas.create_rectangle(50, 50, 150, 150, fill='green', dash=(4, 4))
# 繪制橢圓
canvas.create_oval(50, 50, 150, 150, fill='pink')
# 繪制文本
canvas.create_text(100, 100, text='文本', foreground='white')

# 注意,添加到 Canvas 上的對(duì)象會(huì)一直保留直著。
# 如果你希望修改它們,你可以使用 coords(),itemconfig() 和 move() 方法來移動(dòng)畫布上的對(duì)象,或者使用 delete() 方法來刪除:

# 移動(dòng)
canvas.coords(rect1, 25, 50, 170, 150)
# 修改
canvas.itemconfig(rect1, fill='red')
canvas.delete(line1)

Button(root, text='刪除全部', command=(lambda x=ALL: canvas.delete(x))).pack()

root.mainloop()

然后,你想要繪制多邊形,可以使用 create_polygon() 方法:

from tkinter import *
import math

root = Tk()

w = Canvas(root, width=200, height=100, background="red")
w.pack()

center_x = 100
center_y = 50
r = 50

points = [
    # 左上點(diǎn)(A)
    center_x - int(r * math.sin(2 * math.pi / 5)),
    center_y - int(r * math.cos(2 * math.pi / 5)),
    # 右上點(diǎn)(C)
    center_x + int(r * math.sin(2 * math.pi / 5)),
    center_y - int(r * math.cos(2 * math.pi / 5)),
    # 左下點(diǎn)(E)
    center_x - int(r * math.sin(math.pi / 5)),
    center_y + int(r * math.cos(math.pi / 5)),
    # 頂點(diǎn)(B)
    center_x,
    center_y - r,
    # 右下點(diǎn)(D)
    center_x + int(r * math.sin(math.pi / 5)),
    center_y + int(r * math.cos(math.pi / 5))
]

w.create_polygon(points, outline="green", fill="yellow")  # fill 默認(rèn)是 black ,黑色填充

root.mainloop()

Tkinter 并沒有提供畫“點(diǎn)”的方法。不過,我們可以通過繪制一個(gè)超小的橢圓形來表示一個(gè)“點(diǎn)”。下邊例子中,通過響應(yīng)“鼠標(biāo)左鍵按住拖動(dòng)”事件(<B1-Motion>),我們?cè)谑髽?biāo)拖動(dòng)的同時(shí)獲取鼠標(biāo)的實(shí)時(shí)位置(x, y),并繪制一個(gè)超小的橢圓來代表一個(gè)“點(diǎn)”:

from tkinter import *

root = Tk()

Label(root, text="畫板").pack(pady=10)

canvas = Canvas(root, width=400, height=400, background='green')
canvas.pack()


def paint(event):
    x1, y1 = (event.x - 1), (event.y - 1)  # 當(dāng)前鼠標(biāo)點(diǎn)擊的左上角一個(gè)點(diǎn)
    x2, y2 = (event.x + 1), (event.y + 1)  # 當(dāng)前鼠標(biāo)點(diǎn)擊的右下角一個(gè)點(diǎn)
    canvas.create_oval(x1, y1, x2, y2, fill='red')


canvas.bind('<B1-Motion>', paint)

root.mainloop()

Canvas 組件支持對(duì)象

arc(弧形、弦或扇形)
bitmap(內(nèi)建的位圖文件或 XBM 格式的文件)
image(BitmapImage 或 PhotoImage 的實(shí)例對(duì)象)
line(線)
oval(圓或橢圓形)
polygon(多邊形)
rectangle(矩形)
text(文本)
window(組件)
其中,弦、扇形、橢圓形、圓形、多邊形和矩形這些“封閉式”圖形都是由輪廓線和填充顏色組成的,但都可以設(shè)置為透明(傳入空字符串表示透明)。

坐標(biāo)系

由于畫布可能比窗口大(帶有滾動(dòng)條的 Canvas 組件),因此 Canvas 組件可以選擇使用兩種坐標(biāo)系:

窗口坐標(biāo)系:以窗口的左上角作為坐標(biāo)原點(diǎn)
畫布坐標(biāo)系:以畫布的左上角作為坐標(biāo)原點(diǎn)
將窗口坐標(biāo)系轉(zhuǎn)換為畫布坐標(biāo)系,可以使用 canvasx() 或 canvasy() 方法:

def callback(event):
canvas = event.widget
x = canvas.canvasx(event.x)
y = canvas.canvasy(event.y)
print canvas.find_closest(x, y)

畫布對(duì)象顯示的順序

Canvas 組件中創(chuàng)建的畫布對(duì)象都會(huì)被列入顯示列表中,越接近背景的畫布對(duì)象位于顯示列表的越下方。顯示列表決定當(dāng)兩個(gè)畫布對(duì)象重疊的時(shí)候是如何覆蓋的(默認(rèn)情況下新創(chuàng)建的會(huì)覆蓋舊的畫布對(duì)象的重疊部分,即位于顯示列表上方的畫布對(duì)象將覆蓋下方那個(gè))。當(dāng)然,顯示列表中的畫布對(duì)象可以被重新排序。

指定畫布對(duì)象

Canvas 組件提供幾種方法讓你指定畫布對(duì)象:

Item handles
Tags
"all"
"current"
Item handles 事實(shí)上是一個(gè)用于指定某個(gè)畫布對(duì)象的整型數(shù)字(也成為畫布對(duì)象的 ID)。當(dāng)你在 Canvas 組件上創(chuàng)建一個(gè)畫布對(duì)象的時(shí)候,Tkinter 將自動(dòng)為其指定一個(gè)在該 Canvas 組件中獨(dú)一無二的整型值。然后各種 Canvas 的方法可以通過這個(gè)值操縱該畫布對(duì)象。

Tags 是附在畫布對(duì)象上的標(biāo)簽,Tags 由普通的非空白字符串組成。一個(gè)畫布對(duì)象可以與多個(gè) Tags 相關(guān)聯(lián),一個(gè) Tag 也可用于描述多個(gè)畫布對(duì)象。然而,與 Text 組件不同,沒有指定畫布對(duì)象的 Tags 不能進(jìn)行事件綁定和配置樣式。也就是說,Canvas 組件的 Tags 是僅為畫布對(duì)象所擁有。

Canvas 組件預(yù)定義了兩個(gè) Tags:"all" 和 "current"

"all" 表示 Canvas 組件中的所有畫布對(duì)象

"current" 表示鼠標(biāo)指針下的畫布對(duì)象(如果有的話)

參數(shù)

background / bg
指定 Canvas 的背景顏色

borderwidth / bd
指定 Canvas 的邊框?qū)挾?/p>

closeenough
指定一個(gè)距離,當(dāng)鼠標(biāo)與畫布對(duì)象的距離小于該值時(shí),鼠標(biāo)被認(rèn)為在畫布對(duì)象上
該選項(xiàng)是一個(gè)浮點(diǎn)類型的值

confine
指定 Canvas 組件是否允許滾動(dòng)超出 scrollregion 選項(xiàng)指定的范圍
默認(rèn)值是 True

cursor
指定當(dāng)鼠標(biāo)在 Canvas 上飄過的時(shí)候的鼠標(biāo)樣式

height
指定 Canvas 的高度,單位是像素

highlightbackground
指定當(dāng) Canvas 沒有獲得焦點(diǎn)的時(shí)候高亮邊框的顏色

highlightcolor
指定當(dāng) Canvas 獲得焦點(diǎn)的時(shí)候高亮邊框的顏色

highlightthickness
指定高亮邊框的寬度

relief
指定 Canvas 的邊框樣式
默認(rèn)值是 "flat"
其他可以選擇的值是 "sunken","raised","groove" 和 "ridge"

scrollregion
指定 Canvas 可以被滾動(dòng)的范圍
該選項(xiàng)的值是一個(gè) 4 元組(x1, y1, x2, y2)表示的矩形

selectbackground
指定當(dāng)畫布對(duì)象被選中時(shí)的背景色

selectborderwidth
指定當(dāng)畫布對(duì)象被選中時(shí)的邊框?qū)挾龋ㄟx中邊框)

selectforeground
指定當(dāng)畫布對(duì)象被選中時(shí)的前景色

state
設(shè)置 Canvas 的狀態(tài):"normal" 或 "disabled"
默認(rèn)值是 "normal"
注意:該值不會(huì)影響畫布對(duì)象的狀態(tài)

takefocus
指定使用 Tab 鍵可以將焦點(diǎn)移動(dòng)到輸入框中
默認(rèn)是開啟的,可以將該選項(xiàng)設(shè)置為 False 避免焦點(diǎn)在此輸入框中

width
指定 Canvas 的寬度
單位是像素

xscrollcommand
與 scrollbar(滾動(dòng)條)組件相關(guān)聯(lián)(水平方向)
使用方法可以參考:Scrollbar 組件

xscrollincrement
1.該選項(xiàng)指定 Canvas 水平滾動(dòng)的“步長(zhǎng)”
2.例如 '3c' 表示 3 厘米,還可以選擇的單位有 'i'(英寸),'m'(毫米)和 'p'(DPI,大約是 '1i' 等于 '72p')
3.默認(rèn)值是 0,表示可以水平滾動(dòng)到任意位置

yscrollcommand
1.與 scrollbar(滾動(dòng)條)組件相關(guān)聯(lián)(垂直方向)
2.使用方法可以參考:Scrollbar 組件

yscrollincrement
1.該選項(xiàng)指定 Canvas 垂直滾動(dòng)的“步長(zhǎng)”
2.例如 '3c' 表示 3 厘米,還可以選擇的單位有 'i'(英寸),'m'(毫米)和 'p'(DPI,大約是 '1i' 等于 '72p')
3.默認(rèn)值是 0,表示可以水平滾動(dòng)到任意位置

方法

addtag(tag, method, *args)
-- 添加一個(gè) Tag 到一系列畫布對(duì)象中
-- 指定添加 Tag 的位置,可以是:"above","all","below","closest","enclosed","overlapping" 或 "withtag"
-- args 是附加參數(shù),請(qǐng)參考下方等同的方法

addtag_above(tag, item)
-- 為顯示列表中 item 上方的畫布對(duì)象添加 Tag
-- 該方法相當(dāng)于 addtag(tag, "above", item)
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

addtag_all(tag)
-- 為 Canvas 組件中所有的畫布對(duì)象添加 Tag
-- 該方法相當(dāng)于 addtag(tag, "all")

addtag_below(tag, item)
-- 為顯示列表中 item 下方的畫布對(duì)象添加 Tag
-- 該方法相當(dāng)于 addtag(tag, "below", item)
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

addtag_closest(tag, x, y, halo=None, start=None)
-- 將 Tag 添加到與給定坐標(biāo)(x, y)相臨近的畫布對(duì)象
-- 可選參數(shù) halo 指定一個(gè)距離,表示以(x, y)為中心,該距離內(nèi)的所有畫布對(duì)象均添加 Tag
-- 可選參數(shù) start 指定一個(gè)畫布對(duì)象,該方法將為低于但最接近該對(duì)象的畫布對(duì)象添加 Tag
-- 該方法相當(dāng)于 addtag(tag, "closet", x, y, halo=None, start=None)
-- 注1:使用的是畫布坐標(biāo)系
-- 注2:如果同時(shí)由幾個(gè)畫布對(duì)象與給定坐標(biāo)(x, y)的距離相同,則為位于顯示列表上方的那個(gè)畫布對(duì)象添加 Tag

addtag_enclosed(tag, x1, y1, x2, y2)
-- 為所有坐標(biāo)在矩形(x1, y1, x2, y2)中的畫布對(duì)象添加 Tag
-- 該方法相當(dāng)于 addtag(tag, "enclosed", x1, y1, x2, y2)

addtag_overlapped(tag, x1, y1, x2, y2)
-- 跟 addtag_enclosed() 方法相似,不過該方法范圍更廣(即使畫布對(duì)象只有一部分在矩形中也算)
-- 該方法相當(dāng)于 addtag(tag, "overlapping", x1, y1, x2, y2)

addtag_withtag(tag, item)
-- 為 item 參數(shù)指定的畫布對(duì)象添加 Tag
-- item 參數(shù)如果指定一個(gè) Tag,則為所有擁有此 Tag 的畫布對(duì)象添加新的 Tag
-- item 參數(shù)如果指定一個(gè)畫布對(duì)象,那么只為其添加 Tag
-- 該方法相當(dāng)于 addtag(tag, "withtag", item)
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

bbox(*args)
-- 返回一個(gè)四元組(x1, y1, x2, y2)用于描述 args 指定的畫布對(duì)象所在的矩形范圍
-- 如果 args 參數(shù)忽略,返回所有的畫布對(duì)象所在的矩形范圍

canvasx(screenx, gridspacing=None)
-- 將窗口坐標(biāo)系的 X 坐標(biāo)(screenx)轉(zhuǎn)化為畫布坐標(biāo)系
-- 如果提供 gridspacing 參數(shù),則轉(zhuǎn)換結(jié)果將為該參數(shù)的整數(shù)倍

canvasy(screeny, gridspacing=None)
-- 將窗口坐標(biāo)系的 Y 坐標(biāo)(screenx)轉(zhuǎn)化為畫布坐標(biāo)系
-- 如果提供 gridspacing 參數(shù),則轉(zhuǎn)換結(jié)果將為該參數(shù)的整數(shù)倍

coords(*args)
-- 如果僅提供一個(gè)參數(shù)(畫布對(duì)象),返回該畫布對(duì)象的坐標(biāo) (x1, y1, x2, y2)
-- 你可以通過 coords(item, x1, y1, x2, y2) 來移動(dòng)畫布對(duì)象

create_arc(bbox, **options)
-- 根據(jù) bbox (x1, y1, x2, y2) 創(chuàng)建一個(gè)扇形("pieslice")、弓形("chord")或弧形("arc")
-- 新創(chuàng)建的畫布對(duì)象位于顯示列表的頂端
-- 創(chuàng)建成功后返回該畫布對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

activedash 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制虛線
activefill 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,填充顏色
activeoutline 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制輪廓線
activeoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充輪廓的位圖
activestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充的位圖
activewidth 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定邊框的寬度
dash:1.指定繪制虛線輪廓;2.該選項(xiàng)值是一個(gè)整數(shù)元組,元組中的元素分別代表短線的長(zhǎng)度和間隔;3.例如 (3, 5) 代表 3 個(gè)像素的短線和 5 個(gè)像素的間隔
dashoffset:1.指定虛線輪廓開始的偏移位置;2.例如當(dāng) dash=(5, 1, 2, 1),dashoffset=3,則從 2 開始畫虛線
disableddash 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制虛線
disabledfill 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,填充顏色
disabledoutline 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制輪廓線
disabledoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充輪廓的位圖
disabledstipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充的位圖
disabledwidth 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定邊框的寬度
extent 1.指定跨度(從 start 選項(xiàng)指定的位置開始到結(jié)束位置的角度);2. 默認(rèn)值是 90.0
fill 1.指定填充的顏色;2.空字符串表示透明
offset 1.指定當(dāng)點(diǎn)畫模式時(shí)填充位圖的偏移;2.該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
outline 指定輪廓的顏色
outlineoffset 1.指定當(dāng)點(diǎn)畫模式繪制輪廓時(shí)位圖的偏移

  1. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    outlinestipple 1.當(dāng) outline 選項(xiàng)被設(shè)置時(shí),該選項(xiàng)用于指定一個(gè)位圖來填充邊框
    2.默認(rèn)值是空字符串,表示黑色
    start 指定起始位置的偏移角度
    state 1. 指定該畫布對(duì)象的狀態(tài)
  2. 可以是 "normal","disabled"(不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  3. 默認(rèn)值是 "normal"
    stipple 1. 指定一個(gè)位圖用于填充
  4. 默認(rèn)值是空字符串,表示實(shí)心
    style 1. 指定該方法創(chuàng)建的是扇形("pieslice")、弓形("chord")還是弧形("arc")
  5. 默認(rèn)創(chuàng)建的是扇形
    tags 為創(chuàng)建的畫布對(duì)象添加標(biāo)簽
    width 指定邊框的寬度
    create_bitmap(position, **options)

-- 在 position 指定的位置(x, y)創(chuàng)建一個(gè)位圖對(duì)象
-- 創(chuàng)建成功后返回該位圖對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
activebackground 指定當(dāng)位圖對(duì)象狀態(tài)為 "active" 時(shí)候的背景顏色
activebitmap 指定當(dāng)位圖對(duì)象狀態(tài)為 "active" 時(shí)候填充的位圖
activeforeground 指定當(dāng)位圖對(duì)象狀態(tài)為 "active" 時(shí)候的前景顏色
anchor 1. 指定位圖在 position 參數(shù)的相對(duì)位置

  1. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或 "center" 來定位(ewsn代表東西南北,上北下南左西右東)
  2. 默認(rèn)值是 "center"
    background 1. 指定背景顏色
  3. 即在位圖中值為 0 的點(diǎn)的顏色
  4. 空字符串表示透明
    bitmap 指定顯示的位圖
    disabledbackground 指定當(dāng)位圖對(duì)象狀態(tài)為 "disabled" 時(shí)候的背景顏色
    disabledbitmap 指定當(dāng)位圖對(duì)象狀態(tài)為 "disabled" 時(shí)候填充的位圖
    disabledforeground 指定當(dāng)位圖對(duì)象狀態(tài)為 "disabled" 時(shí)候的前景顏色
    foreground 1. 指定前景顏色
  5. 即在位圖中值為 1 的點(diǎn)的顏色
    state 1. 指定該畫布對(duì)象的狀態(tài)
  6. 可以是 "normal", "disabled" (不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  7. 默認(rèn)值是 "normal"
    tags 為創(chuàng)建的位圖對(duì)象添加標(biāo)簽
    create_image(position, **options)

-- 在 position 指定的位置(x, y)創(chuàng)建一個(gè)圖片對(duì)象
-- 創(chuàng)建成功后返回該圖片對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
activeimage 指定當(dāng)圖片對(duì)象狀態(tài)為 "active" 時(shí)候顯示的圖片
anchor 1. 指定位圖在 position 參數(shù)的相對(duì)位置

  1. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或 "center" 來定位(ewsn代表東西南北,上北下南左西右東)
  2. 默認(rèn)值是 "center"
    image 指定要顯示的圖片
    disabledimage 指定當(dāng)圖片對(duì)象狀態(tài)為 "disabled" 時(shí)候顯示的圖片
    state 1. 指定該圖片對(duì)象的狀態(tài)
  3. 可以是 "normal", "disabled" (不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  4. 默認(rèn)值是 "normal"
    tags 為創(chuàng)建的圖片對(duì)象添加標(biāo)簽
    create_line(coords, **options)

-- 根據(jù) coords 給定的坐標(biāo)創(chuàng)建一條或多條線段
-- 如果給定的坐標(biāo)多余兩個(gè)點(diǎn),則會(huì)首尾相連變成一條折線
-- 創(chuàng)建成功后返回該畫布對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
activedash 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制虛線
activefill 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,填充顏色
activestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充的位圖
activewidth 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定邊框的寬度
arrow 1. 默認(rèn)線段是不帶箭頭的

  1. 你可以通過設(shè)置該選項(xiàng)添加箭頭到線段中
  2. "first" 表示添加箭頭到線段開始的位置
  3. "last" 表示添加箭頭到線段結(jié)束的位置
  4. "both" 表示兩端均添加箭頭
    arrowshape 1. 用一個(gè)三元組 (a, b, c) 來指定箭頭的形狀
  5. a, b, c 分別代表箭頭的三條邊的長(zhǎng)
  6. 默認(rèn)值是 (8, 10, 3)
    capstyle 1. 指定線段兩端的樣式
  7. 該選項(xiàng)的值可以是:
    -- "butt"(線段的兩段平切于起點(diǎn)和終點(diǎn))
    -- "projecting"(線段的兩段在起點(diǎn)和終點(diǎn)的位置分別延長(zhǎng)一半 width 選項(xiàng)設(shè)置的長(zhǎng)度)
    -- "round"(線段的兩段在起點(diǎn)和終點(diǎn)的位置分別延長(zhǎng)一半 width 選項(xiàng)設(shè)置的長(zhǎng)度并以圓角繪制)
  8. 默認(rèn)值是 "butt"
  9. 如果還不理解請(qǐng)看下方圖解你就秒懂了~
    dash 1. 繪制虛線
  10. 該選項(xiàng)值是一個(gè)整數(shù)元組,元組中的元素分別代表短線的長(zhǎng)度和間隔
  11. 例如 (3, 5) 代表 3 個(gè)像素的短線和 5 個(gè)像素的間隔
    dashoffset 1. 指定虛線開始的偏移位置
  12. 例如當(dāng) dash=(5, 1, 2, 1),dashoffset=3,則從 2 開始畫虛線
    disableddash 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制虛線
    disabledfill 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,填充顏色
    disabledstipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充的位圖
    disabledwidth 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定邊框的寬度
    fill 1. 指定填充的顏色
  13. 空字符串表示透明
    joinstyle 1. 指定當(dāng)繪制兩個(gè)相鄰線段之間接口的樣式
  14. 該選項(xiàng)的值可以是:
    -- "round"(以連接點(diǎn)為圓心,1/2 width 選項(xiàng)設(shè)置的長(zhǎng)度為半徑繪制圓角)
    -- "bevel"(在連接點(diǎn)處對(duì)兩線段的夾角平切)
    -- "miter"(沿著兩線段的夾角延伸至一個(gè)點(diǎn))
  15. 默認(rèn)值是 "round"
  16. 如果還不理解請(qǐng)看下方 create_line() 函數(shù) joinstyle 選項(xiàng)的圖解你就秒懂了~
    offset 1. 指定當(dāng)點(diǎn)畫模式時(shí)填充位圖的偏移
  17. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    smooth 1. 該選項(xiàng)的值為 True 時(shí),將繪制貝塞爾樣條曲線代替線段(資料:戳我 :貝塞爾樣條曲線)
  18. 默認(rèn)值為 False
    splinesteps 1. 當(dāng)繪制貝塞爾樣條曲線的時(shí)候,該選項(xiàng)指定由多少條折線來構(gòu)成曲線
  19. 默認(rèn)值是 12
  20. 只有當(dāng) smooth 選項(xiàng)為 True 時(shí)該選項(xiàng)才能生效
    state 1. 指定該畫布對(duì)象的狀態(tài)
  21. 可以是 "normal","disabled"(不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  22. 默認(rèn)值是 "nor,al"
    stipple 1. 指定一個(gè)位圖用于填充
  23. 默認(rèn)值是空字符串,表示實(shí)心
    tags 為創(chuàng)建的畫布對(duì)象添加標(biāo)簽
    width 指定邊框的寬度
    有關(guān) capstyle 和 joinstyle 選項(xiàng)的圖解:

create_oval(bbox, **options)

-- 根據(jù)限定矩形 bbox 繪制一個(gè)橢圓
-- 新創(chuàng)建的畫布對(duì)象位于顯示列表的頂端
-- 創(chuàng)建成功后返回該畫布對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
activedash 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制虛線
activefill 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,填充顏色
activeoutline 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制輪廓線
activeoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充輪廓的位圖
activestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充的位圖
activewidth 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定邊框的寬度
dash 1. 指定繪制虛線輪廓

  1. 該選項(xiàng)值是一個(gè)整數(shù)元組,元組中的元素分別代表短線的長(zhǎng)度和間隔
  2. 例如 (3, 5) 代表 3 個(gè)像素的短線和 5 個(gè)像素的間隔
    dashoffset 1. 指定虛線輪廓開始的偏移位置
  3. 例如當(dāng) dash=(5, 1, 2, 1),dashoffset=3,則從 2 開始畫虛線
    disableddash 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制虛線
    disabledfill 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,填充顏色
    disabledoutline 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制輪廓線
    disabledoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充輪廓的位圖
    disabledstipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充的位圖
    disabledwidth 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定邊框的寬度
    fill 1. 指定填充的顏色
  4. 空字符串表示透明
    offset 1. 指定當(dāng)點(diǎn)畫模式時(shí)填充位圖的偏移
  5. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    outline 指定輪廓的顏色
    outlineoffset 1. 指定當(dāng)點(diǎn)畫模式繪制輪廓時(shí)位圖的偏移
  6. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    outlinestipple 1. 當(dāng) outline 選項(xiàng)被設(shè)置時(shí),該選項(xiàng)用于指定一個(gè)位圖來填充邊框
  7. 默認(rèn)值是空字符串,表示黑色
    state 1. 指定該畫布對(duì)象的狀態(tài)
  8. 可以是 "normal","disabled"(不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  9. 默認(rèn)值是 "normal"
    stipple 1. 指定一個(gè)位圖用于填充
  10. 默認(rèn)值是空字符串,表示實(shí)心
    tags 為創(chuàng)建的畫布對(duì)象添加標(biāo)簽
    width 指定邊框的寬度

create_polygon(coords, **options)

-- 根據(jù) coords 給定的坐標(biāo)繪制一個(gè)多邊形
-- 新創(chuàng)建的畫布對(duì)象位于顯示列表的頂端
-- 創(chuàng)建成功后返回該畫布對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
activedash 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制虛線
activefill 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,填充顏色
activeoutline 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制輪廓線
activeoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充輪廓的位圖
activestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充的位圖
activewidth 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定邊框的寬度
dash 1. 指定繪制虛線輪廓

  1. 該選項(xiàng)值是一個(gè)整數(shù)元組,元組中的元素分別代表短線的長(zhǎng)度和間隔
  2. 例如 (3, 5) 代表 3 個(gè)像素的短線和 5 個(gè)像素的間隔
    dashoffset 1. 指定虛線輪廓開始的偏移位置
  3. 例如當(dāng) dash=(5, 1, 2, 1),dashoffset=3,則從 2 開始畫虛線
    disableddash 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制虛線
    disabledfill 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,填充顏色
    disabledoutline 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制輪廓線
    disabledoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充輪廓的位圖
    disabledstipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充的位圖
    disabledwidth 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定邊框的寬度
    fill 1. 指定填充的顏色
  4. 空字符串表示透明
    joinstyle 1. 指定當(dāng)繪制兩個(gè)相鄰線段之間接口的樣式
  5. 該選項(xiàng)的值可以是:
    -- "round"(以連接點(diǎn)為圓心,1/2 width 選項(xiàng)設(shè)置的長(zhǎng)度為半徑繪制圓角)
    -- "bevel"(在連接點(diǎn)處對(duì)兩線段的夾角平切)
    -- "miter"(沿著兩線段的夾角延伸至一個(gè)點(diǎn))
  6. 默認(rèn)值是 "round"
  7. 如果還不理解請(qǐng)看上方圖解你就秒懂了~
    offset 1. 指定當(dāng)點(diǎn)畫模式時(shí)填充位圖的偏移
  8. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    outline 指定輪廓的顏色
    outlineoffset 1. 指定當(dāng)點(diǎn)畫模式繪制輪廓時(shí)位圖的偏移
  9. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    outlinestipple 1. 當(dāng) outline 選項(xiàng)被設(shè)置時(shí),該選項(xiàng)用于指定一個(gè)位圖來填充邊框
  10. 默認(rèn)值是空字符串,表示黑色
    smooth 1. 該選項(xiàng)的值為 True 時(shí),將繪制貝塞爾樣條曲線代替線段(資料:戳我 :貝塞爾樣條曲線)
  11. 默認(rèn)值為 False
    splinesteps 1. 當(dāng)繪制貝塞爾樣條曲線的時(shí)候,該選項(xiàng)指定由多少條折線來構(gòu)成曲線
  12. 默認(rèn)值是 12
  13. 只有當(dāng) smooth 選項(xiàng)為 True 時(shí)該選項(xiàng)才能生效
    state 1. 指定該畫布對(duì)象的狀態(tài)
  14. 可以是 "normal","disabled"(不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  15. 默認(rèn)值是 "normal"
    stipple 1. 指定一個(gè)位圖用于填充
  16. 默認(rèn)值是空字符串,表示實(shí)心
    tags 為創(chuàng)建的畫布對(duì)象添加標(biāo)簽
    width 指定邊框的寬度
    create_rectangle(bbox, **options)

-- 根據(jù)限定矩形 bbox 繪制一個(gè)矩形
-- 新創(chuàng)建的畫布對(duì)象位于顯示列表的頂端
-- 創(chuàng)建成功后返回該畫布對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
activedash 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制虛線
activefill 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,填充顏色
activeoutline 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,繪制輪廓線
activeoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充輪廓的位圖
activestipple 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定填充的位圖
activewidth 當(dāng)畫布對(duì)象狀態(tài)為 "active" 的時(shí)候,指定邊框的寬度
dash 1. 指定繪制虛線輪廓

  1. 該選項(xiàng)值是一個(gè)整數(shù)元組,元組中的元素分別代表短線的長(zhǎng)度和間隔
  2. 例如 (3, 5) 代表 3 個(gè)像素的短線和 5 個(gè)像素的間隔
    dashoffset 1. 指定虛線輪廓開始的偏移位置
  3. 例如當(dāng) dash=(5, 1, 2, 1),dashoffset=3,則從 2 開始畫虛線
    disableddash 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制虛線
    disabledfill 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,填充顏色
    disabledoutline 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,繪制輪廓線
    disabledoutlinestipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充輪廓的位圖
    disabledstipple 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定填充的位圖
    disabledwidth 當(dāng)畫布對(duì)象狀態(tài)為 "disabled" 的時(shí)候,指定邊框的寬度
    fill 1. 指定填充的顏色
  4. 空字符串表示透明
    offset 1. 指定當(dāng)點(diǎn)畫模式時(shí)填充位圖的偏移
  5. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    outline 指定輪廓的顏色
    outlineoffset 1. 指定當(dāng)點(diǎn)畫模式繪制輪廓時(shí)位圖的偏移
  6. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    outlinestipple 1. 當(dāng) outline 選項(xiàng)被設(shè)置時(shí),該選項(xiàng)用于指定一個(gè)位圖來填充邊框
  7. 默認(rèn)值是空字符串,表示黑色
    state 1. 指定該畫布對(duì)象的狀態(tài)
  8. 可以是 "normal", "disabled" (不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  9. 默認(rèn)值是 "normal"
    stipple 1. 指定一個(gè)位圖用于填充
  10. 默認(rèn)值是空字符串,表示實(shí)心
    tags 為創(chuàng)建的畫布對(duì)象添加標(biāo)簽
    width 指定邊框的寬度
    create_text(position, **options)

-- 在 position 指定的位置(x, y)創(chuàng)建一個(gè)文本對(duì)象
-- 創(chuàng)建成功后返回該文本對(duì)象的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
activefill 指定當(dāng)文本對(duì)象狀態(tài)為 "active" 時(shí)候文本的顏色
activestipple 指定當(dāng)文本對(duì)象狀態(tài)為 "active" 時(shí)候文本填充的位圖
anchor

  1. 指定文本在 position 參數(shù)的相對(duì)位置
  2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或 "center" 來定位(ewsn代表東西南北,上北下南左西右東)
  3. 默認(rèn)值是 "center"

disabledfill 指定當(dāng)文本對(duì)象狀態(tài)為 "disabled" 時(shí)候文本的顏色
disabledstipple 指定當(dāng)文本對(duì)象狀態(tài)為 "disabled" 時(shí)候文本填充的位圖
fill 指定文本的顏色
font 指定文本的字體、尺寸等信息
justify 1. 指定對(duì)于多行文本的對(duì)齊方式

  1. 該選項(xiàng)可以使用的值有:"left"(默認(rèn))、"center" 和 "right"
    offset 1. 指定當(dāng)點(diǎn)畫模式時(shí)填充位圖的偏移
  2. 該選項(xiàng)的值可以是:"x,y", "#x,y", "n", "ne", "e", "se", "s", "sw", "w", "nw", "center"
    state 1. 指定該畫布對(duì)象的狀態(tài)
  3. 可以是 "normal","disabled"(不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  4. 默認(rèn)值是 "normal"
    stipple 1. 指定一個(gè)位圖用于填充
  5. 默認(rèn)值是空字符串,表示實(shí)心
    tags 為創(chuàng)建的位圖對(duì)象添加標(biāo)簽
    text 指定該文本對(duì)象將要顯示的文本內(nèi)容
    width 1. 如果指定該選項(xiàng),則文本會(huì)在該寬度處自動(dòng)斷行
  6. 如果不指定該選項(xiàng),文本對(duì)象的寬度等于文本最長(zhǎng)行的長(zhǎng)度
    create_window(position, **options)

-- 在 position 指定的位置(x, y)創(chuàng)建一個(gè)窗口組件
-- 創(chuàng)建成功后返回該窗口組件的 ID
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
anchor 1. 指定位圖在 position 參數(shù)的相對(duì)位置

  1. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或 "center" 來定位(ewsn代表東西南北,上北下南左西右東)
  2. 默認(rèn)值是 "center"
    height 指定窗口組件的高度
    state 1. 指定該圖片的狀態(tài)
  3. 可以是 "normal","disabled"(不可用,不響應(yīng)事件)和 "hidden"(隱藏)
  4. 默認(rèn)值是 "normal"
    tags 為創(chuàng)建的圖片對(duì)象添加標(biāo)簽
    width 指定窗口組件的寬度
    window 指定一個(gè)窗口組件
    dchars(item, from, to=None)
    -- 刪除 item 中從 from 到 to(包含)參數(shù)中的字符串
    -- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

delete(item)
-- 刪除 item 參數(shù)指定的畫布對(duì)象
-- 如果不存在 item 指定的畫布對(duì)象,并不會(huì)產(chǎn)生錯(cuò)誤
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

dtag(item, tag=None)
-- 在 item 參數(shù)指定的畫布對(duì)象中刪除指定的 tag
-- 如果 tag 參數(shù)被忽略,則刪除指定畫布對(duì)象所有的 tags
-- 如果不存在 item 指定的畫布對(duì)象,并不會(huì)產(chǎn)生錯(cuò)誤
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

find_above(item)
-- 返回在 item 參數(shù)指定的畫布對(duì)象之上的 ID
-- 如果有多個(gè)畫布對(duì)象符合要求,那么返回最頂端的那個(gè)
-- 如果 item 參數(shù)指定的是最頂層的畫布對(duì)象,那么返回一個(gè)空元組
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

find_all()
-- 返回 Canvas 組件上所有的畫布對(duì)象
-- 返回格式是一個(gè)元組,包含所有畫布對(duì)象的 ID
-- 按照顯示列表的順序返回
-- 該方法相當(dāng)于 find_withtag("all")

find_below(item)
-- 返回在 item 參數(shù)指定的畫布對(duì)象之下的 ID
-- 如果有多個(gè)畫布對(duì)象符合要求,那么返回最底端的那個(gè)
-- 如果 item 參數(shù)指定的是最底層的畫布對(duì)象,那么返回一個(gè)空元組
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

find_closest(x, y, halo=None, start=None)
-- 返回一個(gè)元組,包含所有靠近點(diǎn)(x, y)的畫布對(duì)象的 ID
-- 如果沒有符合的畫布對(duì)象,則返回一個(gè)空元組
-- 可選參數(shù) halo 用于增加點(diǎn)(x, y)的輻射范圍
-- 可選參數(shù) start 指定一個(gè)畫布對(duì)象,該方法僅返回在顯示列表中低于但最接近的一個(gè) ID
-- 注意,點(diǎn)(x, y)的坐標(biāo)是采用畫布坐標(biāo)系來表示

find_enclosed(x1, y1, x2, y2)
-- 返回完全包含在限定矩形內(nèi)所有畫布對(duì)象的 ID

find_overlapping(x1, y1, x2, y2)
-- 返回所有與限定矩形有重疊的畫布對(duì)象的 ID(讓然也包含在限定矩形內(nèi)的畫布對(duì)象)

find_withtag(item)
-- 返回 item 指定的所有畫布對(duì)象的 ID
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

focus(item=None)
-- 將焦點(diǎn)移動(dòng)到指定的 item
-- 如果有多個(gè)畫布對(duì)象匹配,則將焦點(diǎn)移動(dòng)到顯示列表中第一個(gè)可以接受光標(biāo)輸入的畫布對(duì)象
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

gettags(item)
-- 返回與 item 相關(guān)聯(lián)的所有 Tags
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

icursor(item, index)
-- 將光標(biāo)移動(dòng)到 item 指定的畫布對(duì)象
-- 這里要求 item 指定的畫布對(duì)象支持文本輸入和轉(zhuǎn)移焦點(diǎn)
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

index(item, index)
-- 返回 index 在指定 item 中的位置(沿用 Python 的慣例:0 表示第一)
-- index 參數(shù)可以是:"insert"(當(dāng)前光標(biāo)的位置),"end"(最后一個(gè)字符的位置),"sel_first"(當(dāng)前選中文本的起始位置),"sel_last"(當(dāng)前選中文本的結(jié)束位置),還可以使用格式為 "@x, y"(x 和 y 是畫布坐標(biāo)系)來獲得與此坐標(biāo)最接近的位置
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

insert(item, index, text)
-- 在允許進(jìn)行文本編輯的畫布對(duì)象的指定位置插入文本
-- index 參數(shù)可以是:"insert"(當(dāng)前光標(biāo)的位置),"end"(最后一個(gè)字符的位置),"sel_first"(當(dāng)前選中文本的起始位置),"sel_last"(當(dāng)前選中文本的結(jié)束位置),還可以使用格式為 "@x, y"(x 和 y 是畫布坐標(biāo)系)來獲得與此坐標(biāo)最接近的位置
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

itemcget(item, option)
-- 獲得指定 item 的選項(xiàng)的當(dāng)前值
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

itemconfig(item, **options)
-- 修改指定 item 的選項(xiàng)的當(dāng)前值
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

itemconfigure(item, **options)
-- 跟 itemconfig() 一樣

lift(item, **options)
-- 將指定畫布對(duì)象移動(dòng)到顯示列表的頂部
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag
-- 跟 tag_raise 一樣

lower(item, **options)
-- 將指定畫布對(duì)象移動(dòng)到顯示列表的底部
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag
-- 跟 tag_lower 一樣

move(item, dx, dy)
-- 將 item 移動(dòng)到新位置(x, y)
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

postscript(**options)
-- 將 Canvas 的當(dāng)前內(nèi)容封裝成 PostScript 格式(什么是 PostScript)表示
-- 下方表格列舉了各個(gè) options 選項(xiàng)的具體含義:

選項(xiàng) 含義
colormode 該選項(xiàng)的值可以是:'color'(顏色輸出),'gray'(灰階輸出)和 'mono'(黑白輸出)
file 1. 該選項(xiàng)指定一個(gè)文件,將 PostScript 寫入該文件中

  1. 如果忽略該選項(xiàng),PostScript 將以字符串的形式返回
    height 1. 指定要打印的 Canvas 組件的高度
  2. 默認(rèn)值是 Canvas 組件的整體高度
    rotate 1. 如果該選項(xiàng)的值為 False,該頁面將以縱向呈現(xiàn)
  3. 如果該選項(xiàng)的值為 True,該頁面將以橫向呈現(xiàn)
    x 開始打印的最左邊位置,以畫布坐標(biāo)系表示
    y 開始打印的最頂端位置,以畫布坐標(biāo)系表示
    width 1. 指定要打印的 Canvas 組件的寬度
  4. 默認(rèn)值是 Canvas 組件的整體寬度
    scale(item, xOrigin, yOrigin, xScale, yScale)
    -- 縮放 item 指定的畫布對(duì)象
    -- xOrigin 和 yOrigin 決定要縮放的位置
    -- xScale 和 yScale 決定縮放的比例
    -- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag
    -- 注意:該方法無法縮放 Text 畫布對(duì)象

scan_dragto(x, y)
-- 見下方 scan_mark(x, y)

scan_mark(x, y)
-- 使用這種方式來實(shí)現(xiàn) Canvas 內(nèi)容的滾動(dòng)
-- 需要將鼠標(biāo)按鈕事件及當(dāng)前鼠標(biāo)位置綁定到 scan_mark(x, y) 方法,然后再將 <motion> 事件及當(dāng)前鼠標(biāo)位置綁定到 scan_dragto(x, y) 方法,就可以實(shí)現(xiàn) Canvas 在當(dāng)前位置和 sacn_mack(x, y) 指定的位置 (x, y) 之間滾動(dòng)

select_adjust(item, index)
-- 調(diào)整選中范圍,使得給定的 index 參數(shù)指定的位置在范圍內(nèi)
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

select_clear()
-- 取消 Canvas 組件中所有選中的范圍

select_from(item, index)
-- 調(diào)整選中范圍的起始位置為 index 參數(shù)指定的位置
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

select_item()
-- 范圍在 Canvas 組件中當(dāng)前文本的選中范圍
-- 如果沒有則返回 None

select_to(item, index)
-- 調(diào)整選中范圍的結(jié)束位置為 index 參數(shù)指定的位置

tag_bind(item, event=None, callback, add=None)
-- 為 Canvas 組件上的畫布對(duì)象綁定方法
-- event 參數(shù)是綁定的事件名稱,callback 是與之關(guān)聯(lián)的方法
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag
-- 注意:與綁定事件關(guān)聯(lián)的是畫布對(duì)象,而不是 Tag

tag_lower(item)
-- 將一個(gè)或多個(gè)畫布對(duì)象移至底部
-- 如果是多個(gè)畫布對(duì)象,將它們都移至底部并保留原有順序
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag
-- 注意:該方法對(duì)窗口組件無效,請(qǐng)使用 lower 代替

tag_raise(item)
-- 將一個(gè)或多個(gè)畫布對(duì)象移至頂部
-- 如果是多個(gè)畫布對(duì)象,將它們都移至頂部并保留原有順序
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag
-- 注意:該方法對(duì)窗口組件無效,請(qǐng)使用 lift 代替

tag_unbind(item, event, callback=None)
-- 解除與 item 綁定的事件
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag

tkraise(item, **options)
-- 將指定畫布對(duì)象移動(dòng)到顯示列表的頂部
-- item 可以是單個(gè)畫布對(duì)象的 ID,也可以是某個(gè) Tag
-- 跟 tag_raise 一樣

type(item)
-- 返回指定畫布對(duì)象的類型
-- 返回值可以是:"arc", "bitmap", "image", "line", "oval", "polygon", "rectangle", "text", 或 "window"

xview(*args)
-- 該方法用于在水平方向上滾動(dòng) Canvas 組件的內(nèi)容,一般通過綁定 Scollbar 組件的 command 選項(xiàng)來實(shí)現(xiàn)(具體操作參考:Scrollbar)
-- 如果第一個(gè)參數(shù)是 "moveto",則第二個(gè)參數(shù)表示滾動(dòng)到指定的位置:0.0 表示最左端,1.0 表示最右端
-- 如果第一個(gè)參數(shù)是 "scroll",則第二個(gè)參數(shù)表示滾動(dòng)的數(shù)量,第三個(gè)參數(shù)表示滾動(dòng)的單位(可以是 "units" 或 "pages"),例如:xview("scroll", 3, "units") 表示向右滾動(dòng)三行

xview_moveto(fraction)
-- 跟 xview("moveto", fraction) 一樣

xview_scroll(number, what)
-- 跟 xview("scroll", number, what) 一樣

yview(*args)
-- 該方法用于在垂直方向上滾動(dòng) Canvas 組件的內(nèi)容,一般通過綁定 Scollbar 組件的 command 選項(xiàng)來實(shí)現(xiàn)(具體操作參考:Scrollbar)
-- 如果第一個(gè)參數(shù)是 "moveto",則第二個(gè)參數(shù)表示滾動(dòng)到指定的位置:0.0 表示最頂端,1.0 表示最底端
-- 如果第一個(gè)參數(shù)是 "scroll",則第二個(gè)參數(shù)表示滾動(dòng)的數(shù)量,第三個(gè)參數(shù)表示滾動(dòng)的單位(可以是 "units" 或 "pages"),例如:yview("scroll", 3, "pages") 表示向下滾動(dòng)三頁

yview_moveto(fraction)
-- 跟 yview("moveto", fraction) 一樣

yview_scroll(number, what)
-- 跟 yview("scroll", number, what) 一樣

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容