Python实例 tkinter canvas (设置背景图片及文字)

发布时间:2019-12-13编辑:脚本学堂
分享一例python实例代码,学习下tkinter canvas 设置背景图片与文字的方法,有需要的朋友做个参考。

首先,绘图:
 

复制代码 代码示例:
from Tkinter import * 
 
master = Tk() 
 
w = Canvas(master, width=200, height=100) 
w.pack() 
 
w.create_line(0, 0, 200, 100) 
w.create_line(0, 100, 200, 0, fill="red", dash=(4, 4)) 
 
w.create_rectangle(50, 25, 150, 75, fill="blue") 
 
mainloop() 
 
tk 默认处理图片格式为gif 处理其他格式的图片,否则需要下载image的mod,这个大家百度下。
# -*- coding:utf-8 -*- 
# file: TkinterCanvas.py 

import Tkinter         # 导入Tkinter模块 
from PIL import Image, ImageTk 
 
root = Tkinter.Tk() 
canvas = Tkinter.Canvas(root, 
    width = 500,      # 指定Canvas组件的宽度 
    height = 600,      # 指定Canvas组件的高度 
    bg = 'white')      # 指定Canvas组件的背景色 
#im = Tkinter.PhotoImage(file='img.gif')     # 使用PhotoImage打开图片 
image = Image.open("img.jpg") 
im = ImageTk.PhotoImage(image) 
 
canvas.create_image(300,50,image = im)      # 使用create_image将图片添加到Canvas组件中 
canvas.create_text(302,77,       # 使用create_text方法在坐标(302,77)处绘制文字 
   text = 'Use Canvas'      # 所绘制文字的内容 
   ,fill = 'gray')       # 所绘制文字的颜色为灰色 
canvas.create_text(300,75, 
   text = 'Use Canvas', 
   fill = 'blue') 
canvas.pack()         # 将Canvas添加到主窗口 
root.mainloop()
 

参看: http://effbot.org/tkinterbook/canvas.htm#when-to-use
 
wxpython 的canvas实例代码。
 

复制代码 代码示例:

# create a canvas on top of a blank bitmap 
# any canvas drawings can now be saved to a standard image file 
# tested with Python27 and wxPython28  by vegaseat  05jan2011 
 
import wx 

class MyFrame(wx.Frame): 
    def __init__(self, parent=None, id=-1, title=None): 
        wx.Frame.__init__(self, parent, id, title, size=(380,400)) 
        self.statbmp = wx.StaticBitmap(self) 
        self.draw_image() 
        self.save_image() 
 
    def draw_image(self): 
        # select the width and height of the blank bitmap 
        # should fit the client frame 
        w, h = 340, 340 
        # create the blank bitmap as a draw background 
        draw_bmp = wx.EmptyBitmap(w, h) 
        # create the canvas on top of the draw_bmp 
        canvas_dc = wx.MemoryDC(draw_bmp) 
        # fill the canvas white 
        canvas_dc.SetBrush(wx.Brush('white')) 
        canvas_dc.Clear() 
 
        # draw a bunch of circles ... 
        # pen colour 
        canvas_dc.SetPen(wx.Pen('red', 1)) 
        # fill colour 
        canvas_dc.SetBrush(wx.Brush('yellow')) 
        for x in range(10, 180, 10): 
            y = x 
            r = x 
            canvas_dc.DrawCircle(x, y, r) 
 
        # now put the canvas drawing into a bitmap to display it 
        # remember the canvas is on top of the draw_bmp 
        self.statbmp.SetBitmap(draw_bmp) 
 
    def save_image(self): 
        """save the drawing""" 
        finished_image = self.statbmp.GetBitmap() 
        #finished_image.SaveFile("mydrawing.png", wx.BITMAP_TYPE_PNG) 
        finished_image.SaveFile("mydrawing.jpg", wx.BITMAP_TYPE_JPEG) 
 
 
app = wx.App(0) 
MyFrame(title='canvas draw and save').Show() 
app.MainLoop() 
 
# help(wx.PaintDC)