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获取当前日期和时间的方法
Apr 30 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
python3.x上post发送json数据
Mar 04 Python
pandas值替换方法
Jul 10 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
关于python多重赋值的小问题
Apr 17 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
Tornado实现多进程/多线程的HTTP服务详解
Jul 25 Python
Python CVXOPT模块安装及使用解析
Aug 01 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学习之运算符相关概念
2011/06/09 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
浅析Python的Django框架中的Memcached
2015/07/23 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python列表切片常用操作实例解析
2020/03/10 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
python 调整图片亮度的示例
2020/12/03 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
内科护士节演讲稿
2014/09/11 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
质量保证书
2015/01/17 职场文书
校园广播稿范文
2015/08/19 职场文书
Python django中如何使用restful框架
2021/06/23 Python
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android