利用tkinter制作一个用户界面:开始研究界面的零件及细节

利用tkinter制作一个用户界面(续)

导入:
我想作为一名Python程序猿,大家对于tkinter大家应该不陌生了吧,那么在接下几篇博文里我将跟大伙一起来实现tkinter的用户登录界面。注意:该界面没有注册哦~

tkinter的基础:

想要先实例化一个窗口我们就得学会以下代码:

import tkinter as tk
window = tk.Tk()
window.title("xxx")
window.geometry("300x500")#注意,引号中的窗口大小必须用"x",而不是“*”

window.mainloop()

运行了之后。。。
在这里插入图片描述
ohhhhhhhhhhh!没错,你完成了tkinter的第一步——学会了制作窗口!!!

messagebox模块的使用:
messagebox:信息框 那么以下就是一些有关于tkinter.messagebox模块的代码:

import tkinter.messagebox#先导入模块
tkinter.messagebox.showinfo(title = "Hi", message = "SHANe_HCKER")#显示信息
tkinter.messagebox.showwarning(title = "Hi", message = "nonononono")#显示警告
tkinter.messagebox.showerror(title = "Hi", message = "错错错")#显示错误
tkinter.messagebox.askquestion(title = "Hi", message = "字符串yes 还是 no")#询问
tkinter.messagebox.askyesno(title = "ask", message = "字符串 True 还是 False")#yes还是no
tkinter.messagebox.askretrycancel(title = "Hi", message = "字符串 True 还是 False")#重试还是取消
tkinter.messagebox.askokcancel(title = "ok", message = "字符串 True 还是 False")#ok还是取消

这里大家就不用运行了,因为运行啥都没用。但是这些再后面几章会很有用!!但是这些再后面几章会很有用!!但是这些再后面几章会很有用!!(重要的事情说三遍)

切入正题:

我们啊,这次需要用到上次的验证码模块,代码如下:
创建:YZM.py,并开始编译!!

import random
from PIL import Image, ImageFont, ImageDraw, ImageFilter
def rnd_tuple1():
    a = random.randint(0,127)
    b = random.randint(0,127)
    c = random.randint(0,127)
    return(a,b,c)
def rnd_tuple2():
    a = random.randint(127,255)
    b = random.randint(127,255)
    c = random.randint(127,255)
    return (a, b, c)
def rnd_char():
    return chr(random.randint(97,122))

def YZM():
    image = Image.new("RGB",(240,60),(0,255,0))
    draw = ImageDraw.Draw(image)
    for x in range(240):
        for y in range(60):
            draw.point((x,y),rnd_tuple1())
    font =  ImageFont.truetype("arial.ttf",36)
    chr = ""
    for t in range(4):
        c = rnd_char()
        chr += c
        draw.text((60*t+10,10),c,rnd_tuple2(),font)
    image.save("xxx.png")
    return chr

这里输出的验证码图片是随机字母,并且是小写的,嗯。。。然后背景是由红绿蓝的小点点组成的,当然字母的颜色也随机。
运行后xxx.png会自动保存到你写的程序的目录,点开之后你会发现。。。
在这里插入图片描述
没错,随机刷新了验证码 针不戳
顺便来个预告,我们在下一章会直接发代码,其中我们呢,会用上这些模块

import tkinter as tk #tkinter模块
import tkinter.messagebox #messagebox模块
import webbrowser #浏览器模块
import time #时间模块
import os #系统模块1
import YZM #YZM.py的导入

tkinter 还有 messagebox都讲过了,接下来我们讲webbrowser, time 还有 os模块在我们这个界面里的使用:
webbrowser模块
打开标签页,用疯狂打开浏览器的方式冒充成"病毒"。。。用处很多,那么在我们的登录界面了,就有些好康的,比如:

import webbrowser
import tkinter.messagebox
        while 1:
            webbrowser.open("ihasabucket.com")
            tk.messagebox.showerror(title = "输入有误 危险!!电脑处于危机状态!!", message = "错误,错误!!系统被匿名_067347不明用户劫持......")

运行后。。。

在这里插入图片描述
要是你看过之前的文章应该都知道的:好康的文章
time模块的使用:
在这里我们将讲到time模块在这个登录界面的用处也就是:
制作进度条!!
进度条的编译:
我们用下载进度条做个例子(需要用到time模块还有tkinter模块):

import tkinter as tk
import time
window = tk.Tk()
window.title('Installing')
window.geometry('630x150')
# 设置下载进度条
tk.Label(window, text='Installing', ).place(x=50, y=60)
canvas = tk.Canvas(window, width=465, height=22, bg="white")
canvas.place(x=110, y=60)

# 显示下载进度
# 填充进度条
fill_line = canvas.create_rectangle(1.5, 1.5, 0, 23, width=0, fill="green")
x = 500  # 未知变量,可更改
n = 465 / x  # 465是矩形填充满的次数
for i in range(x):
    n = n + 465 / x
    canvas.coords(fill_line, (0, 0, n, 60))
    window.update()
    time.sleep(0.01)  # 控制进度条流动的速度

    # 清空进度条
fill_line = canvas.create_rectangle(1.5, 1.5, 0, 23, width=0, fill="white")

没错,就那么亿点点代码,那么运行之后会显示这样的东西:
在这里插入图片描述
运行成功,并且进度条也在流动,成功啦!
os模块的使用:
长得帅的人就会问了:欸,那个啥,os不是苹果电脑系统吗??
答:不。
问:你是傻了吗?
哈哈,其实啊,在我们的python当中,这个os其实是系统模块,用途有许多,其中我们需要用到的是这个:

import os
#os.system("在这里输入指令")
os.system("slidetoshutdown")

那么运行后,会发生惊人的一幕,可以截不到图。。。反正感兴趣的可以回头自己去试。
今天学会了那么多东西,回去一个一个都是界面制作小能手了,你说是不??

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项博威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值