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 相关文章推荐
Django小白教程之Django用户注册与登录
Apr 22 Python
python 网络编程常用代码段
Aug 28 Python
老生常谈Python之装饰器、迭代器和生成器
Jul 26 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
Python安装pycurl失败的解决方法
Oct 15 Python
OpenCV 模板匹配
Jul 10 Python
Pytorch模型转onnx模型实例
Jan 15 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
Jul 02 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
python tkinter实现定时关机
Apr 21 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模板引擎SMARTY
2006/10/09 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
PHP缓冲区用法总结
2016/02/14 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
python3序列化与反序列化用法实例
2015/05/26 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
全球最大的游戏市场:G2A
2018/07/05 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
少先队入队活动方案
2014/02/08 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
建党伟业的观后感
2015/06/01 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS