Tkinter 之Canvas畫布


一、參數說明

參數 作用
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()

  

三、效果圖

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM