一、參數說明
| 參數 | 作用 |
|---|---|
| background(bg) | 指定 Canvas 的背景顏色 |
| borderwidth(bd) | 指定 Canvas 的邊框寬度 |
| closeenough | 指定一個距離,當鼠標與畫布對象的距離小於該值時,鼠標被認為在畫布對象上 該選項是一個浮點類型的值 |
| confine | 指定 Canvas 組件是否允許滾動超出 scrollregion 選項指定的范圍 默認值是 True |
| cursor | 指定當鼠標在 Canvas 上飄過的時候的鼠標樣式 |
| height | 指定 Canvas 的高度,單位是像素 |
| width | 指定 Canvas 的寬度 單位是像素 |
| highlightbackground | 指定當 Canvas 沒有獲得焦點的時候高亮邊框的顏色 |
| highlightcolor | 指定當 Canvas 獲得焦點的時候高亮邊框的顏色 |
| highlightthickness | 指定高亮邊框的寬度 |
| relief | 指定 Canvas 的邊框樣式 默認值是 "flat" 其他可以選擇的值是 "sunken","raised","groove" 和 "ridge" |
| scrollregion | 指定 Canvas 可以被滾動的范圍 該選項的值是一個 4 元組(x1, y1, x2, y2)表示的矩形 |
| selectbackground | 指定當畫布對象被選中時的背景色 |
| selectborderwidth | 指定當畫布對象被選中時的邊框寬度(選中邊框) |
| selectforeground | 指定當畫布對象被選中時的前景色 |
| state | 設置 Canvas 的狀態:"normal" 或 "disabled" 默認值是 "normal" 注意:該值不會影響畫布對象的狀態 |
| takefocus | 指定使用 Tab 鍵可以將焦點移動到輸入框中 默認是開啟的,可以將該選項設置為 False 避免焦點在此輸入框中 |
| xscrollcommand | 與 scrollbar(滾動條)組件相關聯(水平方向) |
| yscrollcommand | 與 scrollbar(滾動條)組件相關聯(垂直方向) |
方法列表:
canvasx(screenx, gridspacing=None)
-- 將窗口坐標系的 X 坐標(screenx)轉化為畫布坐標系
-- 如果提供 gridspacing 參數,則轉換結果將為該參數的整數倍
canvasy(screeny, gridspacing=None)
-- 將窗口坐標系的 Y 坐標(screenx)轉化為畫布坐標系
-- 如果提供 gridspacing 參數,則轉換結果將為該參數的整數倍
create_arc(bbox, **options)
-- 根據 bbox (x1, y1, x2, y2) 創建一個扇形("pieslice")、弓形("chord")或弧形("arc")
-- 新創建的畫布對象位於顯示列表的頂端
-- 創建成功后返回該畫布對象的 ID
create_bitmap(position, **options)
-- 在 position 指定的位置(x, y)創建一個位圖對象
-- 創建成功后返回該位圖對象的 ID
create_image(position, **options)
-- 在 position 指定的位置(x, y)創建一個圖片對象
-- 創建成功后返回該圖片對象的 ID
create_line(coords, **options)
-- 根據 coords 給定的坐標創建一條或多條線段
-- 如果給定的坐標多余兩個點,則會首尾相連變成一條折線
-- 創建成功后返回該畫布對象的 ID
create_oval(bbox, **options)
-- 根據限定矩形 bbox 繪制一個橢圓
-- 新創建的畫布對象位於顯示列表的頂端
-- 創建成功后返回該畫布對象的 ID
create_polygon(coords, **options)
-- 根據 coords 給定的坐標繪制一個多邊形
-- 新創建的畫布對象位於顯示列表的頂端
-- 創建成功后返回該畫布對象的 ID
create_rectangle(bbox, **options)
-- 根據限定矩形 bbox 繪制一個矩形
-- 新創建的畫布對象位於顯示列表的頂端
-- 創建成功后返回該畫布對象的 ID
create_text(position, **options)
-- 在 position 指定的位置(x, y)創建一個文本對象
-- 創建成功后返回該文本對象的 ID
create_window(position, **options)
-- 在 position 指定的位置(x, y)創建一個窗口組件
-- 創建成功后返回該窗口組件的 ID
二、示例代碼
import tkinter as tk
window = tk.Tk()
# 設置窗口大小
winWidth = 600
winHeight = 400
# 獲取屏幕分辨率
screenWidth = window.winfo_screenwidth()
screenHeight = window.winfo_screenheight()
x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)
# 設置主窗口標題
window.title("Canvas菜單參數說明")
# 設置窗口初始位置在屏幕居中
window.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
# 設置窗口圖標
window.iconbitmap("./image/icon.ico")
# 設置窗口寬高固定
window.resizable(0, 0)
canvas = tk.Canvas(window, width=200, height=200, bg="#fff")
canvas.pack();
# 畫一條線
canvas.create_line(0, 100, 200, 100, fill="#f00")
# 畫一個矩形
canvas.create_rectangle(50, 50, 150, 150, fill="blue")
# 畫一個橢圓
canvas.create_oval(60, 60, 140, 140, fill="red")
# 畫文字
canvas.create_text(100, 100, text = "python", fill="#fff")
window.mainloop()
三、效果圖

