小学课后服务 Python少儿编程 进阶篇:1-神奇的二维码 课件 (19张PPT)

资源下载
  1. 二一教育资源

小学课后服务 Python少儿编程 进阶篇:1-神奇的二维码 课件 (19张PPT)

资源简介

(共19张PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少儿编程课
神奇的二维码
本节我们来制作一个二维码生成器
二维码生成器
下面我们开始二维码生成器的制作
1
首先定义一个按钮在画板上
from tkinter import *
root = Tk()
root.title('按钮')
root.geometry('300x100+300+200')
# 定义按钮
btn = Button(root, text='点我')
# 指定按钮的位置
btn.grid(row=0, column=0)
root.mainloop()
2
运行效果如下,按钮默认大小显示在左上角
此时点击按钮并没有任何反应,想要有反应,就要告诉按钮,点击时做什么反应
1
这个通过在定义按钮时指定“command=callback”实现。
from tkinter import *
root = Tk()
root.title('按钮点击效果')
root.geometry('300x100+300+200')
def callback():
print('hello ')
# 添加command=callback参数
btn = Button(root, text='点我', command=callback)
btn.grid(row=0, column=0)
root.mainloop()
2
这里的callback是一个函数的名字,在定义
按钮时添加“command=callback”,就表示
点击按钮时执行callback函数。
动手试试效果吧!
接着我们加入输入框和能显示图片的标签控件
1
首先定义一个按钮在画板上
2
这段程序定义了一个输入框Entry,放在了
第1行第1列的位置,然后定义了一个按钮
Button,放在了第1行第2列的位置,也即
放在了输入框的后面。然后定义了一个标
签Label,放在了第2行第1列的位置,同时
指定了一个“columnspan=2”的参数,表示
这个控件横跨2列。
运行效果如下:
from tkinter import *
root = Tk()
root.title('按钮点击效果')
# 输入框
entry = Entry(root)
entry.grid(row=0, column=0)
def callback():
print('hello')
# 按钮
btn = Button(root, text='点我', command=callback)
btn.grid(row=0, column=1)
# 标签,用于显示文字或图片
label = Label(root)
label.grid(row=1, column=0, columnspan=2)
root.mainloop()
现在我们给这套界面加点功能:输入框中输入任意内容,当点击按钮时,将输入框中的内容显示在下面横跨两列的标签上。这需要三步来完成。
1
第一步,定义一个StringVar():
第二步,在Label标签上加上“textvariable=text”参数,将标签和StringVar通过textvariable参数关联:
2
text = StringVar()
StringVar是tkinter内部定义的字符串
变量类型,在这里用于管理按钮或标
签上面的字符。改变StringVar,按钮
或标签上的文字也随之改变。
label = Label(root, textvariable=text)
这里的text就是第一步中定义的text。
最后,我们在按钮的callback函数中改变
StringVar的值,标签上的文字也就随着改变
3
text.set(entry.get())
4
运行,效果如下:
这个把文字换成图片,就是二维码生成器了
第三方库的下载和安装
先来了解一下pip和第三方库
Python官方库
第三方库
我们的电脑
下载安装Python时安装
直接使用或引入后使用
使用pip进行下载、安装
安装好后引入使用
pip 是一个Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。
1
2
第三方库指非官方库,也就是其他开发人员开发的功能,它的使用如下图所示:
对于pip,可以直接在cmd中使用
1
对于我们的程序而言,想要把一张图片展示在标签上,就需要先安装一个第三方的图片处理库,叫Pillow。
使用pip下载并安装Pillow只需要在cmd中输入”pip install Pillow”就可以了
安装好之后我们来看看Pillow的使用,案例如下:
from tkinter import *
from PIL import Image
from PIL import ImageTk
root = Tk()
root.title('标签上图片的展示')
img = Image.open('C:/Users/Administrator/Desktop/momeimei.jpg')
img = ImageTk.PhotoImage(img)
label = Label(root, text="", image=img, width=500, height=500)
label.grid(row=0, column=0)
root.mainloop()
这里的第2、3行代码就表示从Pillow库中引入Image和ImageTk。第8、9两行代码就是使用Image和ImageTkinter来操作图片,最终得到的img就表示桌面上的momeimei.jpg,这是墨妹妹的一张照片。
然后给标签设置”image=img”参数,表示将得到的img图片和标签绑定到了一起。
运行结果如下所示:
qrcode库的
下载、安装和使用
练习
Exercises


线





现在已知二维码库的名称叫qrcode,请使用pip
完成qrcode库的下载和安装
下载qrcode库,依然是使用pip工具
1
2
下载、安装过程如下:
安装成功之后就可以来使用了
import qrcode
# 将hello world生成二维码
img2 = qrcode.make('hello, world')
# 将二维码图片保存到D盘下的qrcode文件夹下,命名为hello.png
img2.save('D:\\qrcode\\hello.png')
3
程序运行就在相应文件夹下生成了二维码
把上面的知识综合,我们就能得到二维码生成器了:
from tkinter import *
from PIL import Image
from PIL import ImageTk
import qrcode
root = Tk()
root.title('二维码生成器')
entry = Entry(root, width=60)
entry.grid(row=0, column=0)
def callback():
# 获取输入的内容
text_input = entry.get()
# 将输入的内容生成二维码
img_new = qrcode.make(text_input)
# 保存生成的二维码图片
img_new.save('D:\\qrcode\\' + text_input + '.png')
# 处理成标签能使用的类型
img_new = Image.open('D:\\qrcode\\' + text_input + '.png')
img_new = ImageTk.PhotoImage(img_new)
# 这两步是关键
label.configure(image=img_new)
label.image = img_new
btn = Button(root, text='点我', command=callback)
btn.grid(row=0, column=1)
img = qrcode.make('hello, qrcode')
img.save('D:\\qrcode\\hello.png')
img = Image.open('D:\\qrcode\\hello.png')
img = ImageTk.PhotoImage(img)
label = Label(root, text="", image=img, width=500, height=500)
label.grid(row=1, column=0, columnspan=2)
root.mainloop()
总结
Summary
tkinter中按钮、输入框、标签等控件的使用

第三方库Pillow和qrcode的安装和使用

Thanks!

展开更多......

收起↑

资源预览