终于出照片了——Python学习笔记之十九
学到GUI这一部分,才知python的编程似乎先要在架构上有点准备。而gui的学习又一定和图像有点关系,在编程中涉及图像,这让我迷糊了一段时间。也真是有点奇怪,只要是与图片有关,无论是gif的还是jpg的,你照抄的程序一定执行不了。所以,这段时间老是在怪罪我的目录,不断调整,不断卸载重装python的过程,昨天算是找到了一点笨拙门道,可以构想一个学习笔记了。
一、又重复了一次python卸载和重装,解决了python中pip运用问题。
在显示图片时需用到pip,在原先的专供python的目录之下,怎么也不能显示pip的列表,自然也不能使用pip,查检多次,试探多次依然通不过。想到了py的重复问题,果然是有两个py文件,去掉一个,留下一个。然后卸载重装,让目录清晰明白。果然,目录清晰了以后,再来pip list,一次成功。而且立刻还告知你pip还有升级版,下载升级版的指令也同时给出,这个过程还真有点意思。
以下就是目录清理卸载重装py后的pip 列表和pip新版下载指令。
PS C:\Users\zzx21> D:
PS D:\> cd py39
PS D:\py39> cd gui
PS D:\py39\gui> cd root
PS D:\py39\gui\root> cd..
PS D:\py39\gui> cd..
PS D:\py39> pip list
Package Version
---------- -------
pip 20.2.3
setuptools 49.2.1
WARNING: You are using pip version 20.2.3; however, version 21.1.3 is available.
You should consider upgrading via the 'd:\py39\python.exe -m pip install --upgrade pip' command.
PS D:\py39> python.exe -m pip install --upgrade pip
Collecting pip
Downloading pip-21.1.3-py3-none-any.whl (1.5 MB)
|████████████████████████████████| 1.5 MB 1.1 MB/s
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 20.2.3
Uninstalling pip-20.2.3:
Successfully uninstalled pip-20.2.3
Successfully installed pip-21.1.3
PS D:\py39>
然后按学习要求,又顺利装载了pillow
PS D:\py39\gui\root> cd..
PS D:\py39\gui> cd..
PS D:\py39> pip install pillow
Collecting pillow
Downloading Pillow-8.3.1-1-cp39-cp39-win_amd64.whl (3.2 MB)
|████████████████████████████████| 3.2 MB 1.1 MB/s
Installing collected packages: pillow
Successfully installed pillow-8.3.1
PS D:\py39>
二、灵感来了,图片不出的问题终于得到解决
真是灵感来了,折磨了多天的图片不出的问题终于得到解决,原来是照片的文件名把扩展名给重复了。试探了很多次没有想到是这样的语法错误,把名字正名后,多个文件图片得以显示,真是太棒了。古人云,名不正则言不顺,言不顺则事不成。这个目录名的正名,好像也在印证这个古典的道道。这个收获大大推进了进度,一下子就把那个有关label的章节给全部看完了。原先在按钮部分图片不显的问题也解决了,于是有了香蕉的照片,这是在button部分的。同时也就知道了,一个程序架构中的label基本应用的基本知识。
在按钮中显示香蕉
gifdir = "/py39/GUI/Tour/"
from tkinter import *
win = Tk()
img = PhotoImage(file=gifdir + "seven.gif")
Button(win, image=img).pack()
win.mainloop()
香蕉gif照片
显示GIFpython图片
from tkinter import *
root = Tk()
root.title('label2-19')
five_gif= PhotoImage(file='five.gif')
label=Label(root, image=five_gif)
label.pack()
root.mainloop()
照片
显示jpg亚马逊程序
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
root.title('label2-191')
root.geometry('680x400')
image = Image.open("amozen.jpg")
amozen = ImageTk.PhotoImage(image)
label = Label(root, image=amozen)
label.pack()
root.mainloop()
照片
图片显示的不同位置
from tkinter import *
root = Tk()
root.title('label2-21')
pyText = "py 全名为python高级计算机语言,该语言棒极了。"
four_gif = PhotoImage(file="four.gif")
label = Label(root, text=pyText, image=four_gif, bg="lightyellow",
compound='center')
label.pack()
root.mainloop()
照片
三、弄出一个新闻报道的窗口
程序
from tkinter import *
from tkinter.ttk import Separator
root = Tk()
root.title('label2-26')
myTitle = "河南郑州洪灾报道"
myContent = """2021年7月20日,河南郑州发生特大洪水,
小时降水量超200毫米,创多年未有之下雨记录,
竟然将地铁线淹城了地下之海"""
label1= Label(root, text=myTitle,
font="Helvetic 20 bold")
label1.pack(padx=10, pady=10)
sep = Separator(root, orient=HORIZONTAL)
sep.pack(fill=X,padx=5)
label2 = Label(root, text=myContent)
label2.pack(padx=10,pady=10)
root.mainloop()
报道文本图