python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例


Posted in Python onMarch 04, 2020

注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出错。

至于用图片在窗口上绘图,则按代码所示即可。

# -*- coding: utf-8 -*-

"""
Created on Wed Oct 26 20:32:52 2016

@author: min
"""

import Tkinter as tk
from PIL import Image, ImageTk 
global attackTime
attackTime=1


def show1():
  top1=tk.Toplevel()
  image = Image.open('random.jpg') 
  img = ImageTk.PhotoImage(image)
  canvas1 = tk.Canvas(top1, width = image.width*2 ,height = image.height*2, bg = 'white')
  canvas1.create_image(0,0,image = img,anchor="nw")
  canvas1.create_image(image.width,0,image = img,anchor="nw")
  canvas1.pack()  
  top1.mainloop()


def show2():
  top1=tk.Toplevel()
  image = Image.open('random.jpg') 
  img = ImageTk.PhotoImage(image)
  canvas = tk.Canvas(top1, width = image.width ,height = image.height, bg = 'white')
  canvas.create_image(0,0,image = img,anchor="nw")
  canvas.pack()  
  top1.mainloop()


def showMessage():
  top=tk.Toplevel()
  l=tk.Label(top,text='Attacks cost '+str(attackTime)+' s',width=20)
  l.pack()
  top.mainloop()
  
root=tk.Tk()
b1=tk.Button(root,text='start1',command=show1)
b1.pack()
b2=tk.Button(root,text='start2',command=showMessage)
b2.pack()
root.mainloop()

补充知识:关于Python tkinter中出现的坑(界面Tk()+图片显示)

一、关于Python3的tkinter模块

1、首先关于创建Python的窗口是导入 import tkinter 或者 from tkinter import * 这两种形式。关于创建tkinter 的大家耳熟能详的就是直接 win=Tk()[在导入方式为from tkinter import *形式下],但是还有另一种方法用来创建窗口那就是:win=Toplevel(),这个代表的是创建二级界面,就是直接创建两个界面,这个方法非常实用,应用在多个函数调用并生成Python窗口上面。小逸亲自尝试了一下,相当的好哈哈~~~~

2、Toplevel()实际操作。

首先,我们在Python3的环境下写下以下简单的代码:

from tkinter import *

win=Toplevel()

win.title=("这是一个二级界面")

win.geometry("500x300+10+10")

win.mainloop()

上面的代码运行后将出现以下的两个窗口:

python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例

二、# 关于在Label中显示图片的大坑

1、在Label 中显示图片需要用到tkinter 与pillow这两个模块

单独运行一个在tkinter上显示的图片没有问题,但是如果把这个显示图片的函数放在一个Button的command中,那么就算用二级界面也不行了,这个是一个非常大的坑,但是解决方法也非常非常的简单。只要将处理图片的两行代码放在外面就行了。如图:

python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例

以上这篇python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的批量下载RFC文档
Mar 10 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
详解Python正则表达式re模块
Mar 19 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
Python数据可视化:泊松分布详解
Dec 07 Python
python关闭占用端口方式
Dec 17 Python
opencv之为图像添加边界的方法示例
Dec 26 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
Mar 23 Python
python+flask编写一个简单的登录接口
Nov 13 Python
Pytest测试框架基本使用方法详解
Nov 25 Python
python关于集合的知识案例详解
May 30 Python
Python中的socket网络模块介绍
Jul 23 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 #Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 #Python
在python tkinter界面中添加按钮的实例
Mar 04 #Python
Python tkinter布局与按钮间距设置方式
Mar 04 #Python
python 按钮点击关闭窗口的实现
Mar 04 #Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 #Python
python虚拟环境模块venv使用及示例
Mar 04 #Python
You might like
PHP时间戳使用实例代码
2008/06/07 PHP
PHP Document 代码注释规范
2009/04/13 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
DOM 基本方法
2009/07/18 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
python 性能提升的几种方法
2016/07/15 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
wxPython色环电阻计算器
2019/11/18 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
性能服装:HYLETE
2018/08/14 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
大学生实习证明范本
2014/01/15 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
大学三年计划书范文
2014/04/30 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
求职信名称怎么写
2014/05/26 职场文书
实习生辞职信范文
2015/03/02 职场文书
小学数学教师研修日志
2015/11/13 职场文书
《将心比心》教学反思
2016/02/23 职场文书
Python中for后接else的语法使用
2021/05/18 Python