python中mainloop添加背景_Python实例讲解 - tkinter canvas (设置背景图片及文字)

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android高德地图搜索地址,地点/周边搜索-Android平台-开发指南-高德地图车机版 | 高德地图API...

关键字搜索第三方通过该接口可传入关键字信息给auto,调起auto执行关键字搜索并跳转到搜索结果展现界面,官网版本都可支持参数说明参数说明是否必填类型ActionAUTONAVI_STANDARD_BROADCAST_RECV是stringKEY_TYPE协议ID:10036是intSOURCE_APP第三方应用名称…

项目学生:业务层

这是Project Student的一部分。 其他帖子包括带有Jersey的Webservice Client,带有Jersey的 Webservice Server和带有Spring Data的Persistence 。 RESTful Webapp洋葱的第三层是业务层。 这就是应用程序的精髓所在–编写良好的持久性和Web服务层受到约束&#xff0…

setTimeout和setInterval的区别

setTimeout和setInterval的区别javascript都是以单线程的方式运行于浏览器的javascript引擎中的, setTimeout和setInterval的作用只是把你要执行的代码在你设定的一个时间点插入js引擎维护的一个代码队列中。setTimeout 定时;仅执行一次;和window.clearTimeout一起使…

Luogu 3626 [APIO2009]会议中心

很优美的解法。 推荐大佬博客 如果没有保证字典序最小这一个要求,这题就是一个水题了,但是要保证字典序最小,然后我就不会了…… 如果一条线段能放入一个区间$[l, r]$并且不影响最优答案,那么对于这条线段$[l, r]$,设$…

python编程求导数_面向对象编程 —— java实现函数求导

首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地、科学地用java求出函数在一点的导数。 一、引子 defd(f) :defcalc(x) : dx 0.000001 #表示无穷小的Δx return (f(xdx) - …

listitem android,android-为contextmenu标识listitem的ID

我有一个扩展活动的视图. ListView将显示许多列表项.当用户长按时,我想向他们显示一个上下文菜单,允许他们选择编辑,删除等…,然后标识被选为要执行操作的项目的列表项.在onCreate中,我有:listView.setAdapter(adapter);listView.setOnItemClickListener(onListClic…

JUnit理论简介

您读过数学理论吗? 它通常读取如下内容: 对于所有a,b> 0满足以下条件:a b> a和a b> b 通常,这些语句更难以理解。 这种陈述有一些有趣之处:它适用于相当大(在这种情况下为无限&a…

基础类

/*_________________________基础类 构造:独立 原型:共享设计人:杨秀徐 2013-8-1_________________________*///1、结构(function (i) { //参数作为对外暴露的对象var o { }; //对象直接量、实例…

BZOJ5093图的价值(斯特林数)

题目描述 “简单无向图”是指无重边、无自环的无向图(不一定连通)。一个带标号的图的价值定义为每个点度数的k次方的和。给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。因为答案很大,请对998244353取模输出。题解因为…

重写override

不可重写私有方法。 不可重写非静态的方法,虽然编译器不会报错,但是得不到预期的结果。 可以通过重写的形式对父类的功能进行重新定义,比如:对功能进行修改或者进行升级时。 class BaseAction {public void showMsg(){System.out.…

python程序写诗_用Python作诗,生活仍有诗和远方

原标题:用Python作诗,生活仍有诗和远方 报 名 来源:TheodoreXu链接: https://segmentfault.com/a/1190000013154329 常听说,现在的代码,就和唐朝的诗一样重要。 可对我们来说,写几行代码没什么&…

华为鸿蒙手机beta版,鸿蒙2.0 Beta手机版来了!明年将全面支持华为手机

读创/深圳商报记者陈 姝备受关注的华为鸿蒙操作系统(HarmonyOS,以下简称鸿蒙)有了新进展。华为消费者业务软件部总裁王成录日前透露,将于12月16日在北京发布鸿蒙2.0手机开发者Beta版本。王成录在12月14日发微博称:“HarmonyOS正沿着我们在HDC…

Spring LDAP 2.0.0发布

Spring团队很高兴宣布Spring LDAP 2.0.0已发布,并且现在可以从Maven Central和Bintray获得。 Spring LDAP 2.0.0.RELEASE Released列出了新发行版中的所有更改。 JIRA的更改日志也包含更改列表。 以下介绍了2.0.0版本的最基本功能: Spring LDAP现在包括…

Django 路由层

Django的下载与基本命令 下载Django:pip3 install django2.0.1创建一个django project: django-admin startproject luffy在mysite目录下创建应用:python manage.py startapp app01启动django项目:python manage.py runserver 8080 我们访问:…

seajs-require使用示例

<script type"text/javascript">define([js/b],[],function(require) {//定义B模块,id为js/bvar o{b: B模块};return o; })define([js/a],[],function(require) {//定义a模块var o{a: require(js/b)//引用js/b模块id&#xff0c;而不是文件};return o; })seajs…

caffe安装_目标检测之caffe-ssd模型训练与测试

最近把一个ssd网络的net..prototxt网络结构和自己生成的hdf5格式数据一起做训练时发现经常报错&#xff0c;因为ssd中一些层在caffe中并没有实现&#xff0c;需要自己写相应的.cpp,.cu文件重新编译&#xff0c;比较麻烦&#xff0c;而大家通常训练caffe-ssd都是基于原作者公开的…

Python之classmethod和staticmethod的区别

python中3种方式定义类方法&#xff0c;常规方式、classmethod修饰方式、staticmethod修饰方式。 class A(object):def foo(self, x):print(调用foo函数 (%s, %s)%(self, x))print(self:, self)classmethoddef class_foo(cls, x):print(调用class_foo函数 (%s, %s) % (cls, x))…

android 字符串反转,Golang之字符串操作(反转中英文字符串)

//字符串反转package mainimport "fmt"func reverse(str string) string {var result stringstrLen : len(str)for i : ; i < strLen; i {result result fmt.Sprintf("%c", str[strLen-i-])}return result}func reverse1(str string) string {var res…

Spring Integration Publisher

考虑一个假设的要求–您的应用程序中有一个服务类&#xff0c;并且想要捕获有关此服务调用的一些信息&#xff1a; Service public class SampleBean {private static final Logger logger LoggerFactory.getLogger(SampleBean.class);public Response call(Request request)…

POJ - 1125(Stockbroker Grapevine)

Stockbroker Grapevine 题目链接&#xff1a; http://poj.org/problem?id1125 题目&#xff1a; Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 39459 Accepted: 22024Description Stockbrokers are known to overreact to rumours. You have been contracted t…