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采集腾讯新闻实例
Jul 10 Python
python统计文本字符串里单词出现频率的方法
May 26 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
Python中is和==的区别详解
Nov 15 Python
搭建python django虚拟环境完整步骤详解
Jul 08 Python
Python time库基本使用方法分析
Dec 13 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
Python selenium爬虫实现定时任务过程解析
Jun 08 Python
python连接mysql有哪些方法
Jun 24 Python
如何表示python中的相对路径
Jul 08 Python
python实现简单的五子棋游戏
Sep 01 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
php日期操作技巧小结
2016/06/25 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
js prototype截取字符串函数
2010/04/01 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
解读ES6中class关键字
2017/11/20 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
python机器人运动范围问题的解答
2019/04/29 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
python Gabor滤波器讲解
2020/10/26 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
几个判断型的面试题
2012/07/03 面试题
原料仓仓管员岗位职责
2014/07/08 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
教师党员个人自我评价
2015/03/04 职场文书
催款函怎么写
2015/06/24 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python