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闭包及其作用域详解
Aug 28 Python
深入理解Python中的*重复运算符
Oct 28 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
python3去掉string中的标点符号方法
Jan 22 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
python SOCKET编程基础入门
Feb 27 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开发文件系统实例讲解
2006/10/09 PHP
PHP注释实例技巧
2008/10/03 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python set常用操作函数集锦
2017/11/15 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
十八届三中全会学习方案
2014/02/16 职场文书
投诉信范文
2015/07/02 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript