首頁 > 軟體

Python tkinter庫繪圖範例分享

2022-04-10 22:00:33

一、小房子繪製

範例程式碼:

# coding=utf-8
import tkinter as tk      # 匯入tkinter模組
 
root = tk.Tk()            # 建立一個頂級視窗
root.title('小房子1')     # 設定標題
canvas = tk.Canvas(root, bg='white', width=700, height=700)   # 在root視窗上建立畫布canvas,白色背景,寬和高均為700畫素
canvas.pack(anchor='center')   # canvas在root上居中顯示
 
points = [(50, 250), (350, 50), (650, 250)]   # 三角形頂點座標位置
canvas.create_polygon(points, fill='gray', outline='black', width=10)   # 白色填充,紅色線條,線寬為10
canvas.create_rectangle((200, 250, 500, 550),
                        fill='white', outline='black', width=10)     # 繪製矩形,白色填充,綠色線條,線寬為10
canvas.create_oval((250, 300, 450, 500),
                   fill='purple', outline='black', width=10)    # 繪製圓形,黃色填充,黃色線條,線寬為10
 
root.mainloop()   # 進入訊息迴圈

執行結果:

二、彩色氣泡動畫繪製

範例程式碼:

#coding=utf-8
import tkinter as tk
import random as rd
import time
# 全域性變數,全部為list物件
# 分別為:x方向速度,y方向速度,半徑,位置,圖形標記
speedXList, speedYList, rList, posList, idList = [], [], [], [], []
# 可選的顏色
colorList = ['pink', 'gold', 'lightblue', 'lightgreen', 'silver']
# 畫布的寬度、高度,以及圖形個數
width, height, num = 400, 400, 5
root = tk.Tk()
# 建立和佈局畫布
canvas = tk.Canvas(root, width=width, height=height, background='white')
canvas.pack()
 
for i in range(num):
    # 隨機產生圖形初始位置
    x = rd.randint(100, width - 100)
    y = rd.randint(100, height - 100)
    # 新增到圖形位置列表
    posList.append((x, y))
    # 隨機產生半徑,並新增到半徑列表
    r = rd.randint(20, 50)
    rList.append(r)
    # 隨機選取一種顏色
    color = rd.sample(colorList, 1)
    # 建立一個橢圓/圓,用選定的顏色填充
    id = canvas.create_oval(x - r, y - r, x + r, y + r,
                            fill=color, outline=color)
    # 儲存圖形標識
    idList.append(id)
# 設定隨機的移動速度,並儲存
    speedXList.append(rd.randint(-10, 10))
    speedYList.append(rd.randint(-10, 10))
 
while True:
    for i in range(num):
        # 圖形當前所在位置
        item = posList[i]
        r = rList[i]
         # 如果x位置超過邊界,則改編x速度方向
        if item[0] - r < 0 or item[0] + r > width:
            speedXList[i] = -speedXList[i]
        # 如果y位置超過邊界,則改編y速度方向
        if item[1] - r < 0 or item[1] + r > height:
            speedYList[i] = -speedYList[i]
        # 按照當前的速度計算下新的位置
        posList[i] = (item[0] + speedXList[i], item[1] + speedYList[i])
        x, y = posList[i][0], posList[i][1]
        # 移動到新的位置
        canvas.coords(idList[i], (x - r, y - r, x + r, y + r))
        # 重新整理畫面
        canvas.update()
    # 等待0.1秒,即每秒鐘更新10幀,形成動畫
    time.sleep(0.1)

執行結果:

三、畫布建立

範例程式碼:

import tkinter as tk           # 匯入tkinter庫,並重新命名為tk
mywindow = tk.Tk()             # 建立一個表單
mywindow.title("我是一個畫布")      # 設定表單的標題
mycanvas = tk.Canvas(mywindow, width=400, height=300, bg="purple")  # 建立畫布並佈局
 
mycanvas.pack()
mywindow.mainloop()      # 顯示畫布

執行結果:

到此這篇關於Python tkinter庫繪圖範例分享的文章就介紹到這了,更多相關tkinter庫繪圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com