使用Tkinter的Python图形用户界面简介
图形用户界面(GUI)允许用户使用电子符号与电子设备进行交互,而不是基于文本的用户链接、输入的命令或文本探索。GUI是针对命令行网络而设计的,这是一个明显的陡峭的学习曲线,它需要通过计算机键盘输入命令。
在大多数情况下,GUI中的活动是通过直接操作图形元素来完成的。GUI在一系列移动小工具中得到利用,除了计算机之外,还包括MP3播放器、游戏设备、工作场所和工业控制器。
在本教程中,我们将了解如何使用Tkinter建立一个密码生成器GUI。
什么是Tkinter?
用Tkinter构建图形用户界面有几个优点。因为Python是跨平台的,用Tkinter构建的应用程序可以在Windows、Mac OS X和Linux上运行。
Tkinter 应用程序似乎是它们所运行的实例的本土化。这是因为视觉组件是用本地系统应用程序构建的。
在使用 Tkinter 之前必须安装 Python。当你安装Python时,你也会得到Tkinter。然而,如果在安装了Python之后Tkinter没有被安装,你可以使用pip 命令来安装它。
pip install tk
这个命令将安装Tkinter库和它的相关库。
先决条件
要继续学习本教程,你应该有。
什么是widget?
部件是图形用户界面编程的构件,它们被用来查看数据或收集用户的输入。请看下面一些常用的widget的例子。
Frame:它是一个容器,可以组织其他小部件并为其设置边界。Label:标签小组件用于在屏幕上显示文本。Button:它可以包含文本,当一个按钮被点击时,它会执行一个动作。Entry:它显示一个单行文本字段,用于接受用户输入。Text:一个文本输入部件允许你输入多行文本。
什么是密码生成器?
密码生成器是接受随机或伪随机字符串或数字生成器的输入,并使用它来为用户生成密码的软件。
它是一个根据用户选择的规则创建密码的程序,以建立复杂的密码,难以预测或违反多个账户的密码。
如今,网上黑客攻击越来越普遍,导致密码和登录信息经常被泄露,金钱和微妙的个人信息损失。
不幸的是,大多数被盗的密码并不复杂,很容易猜到。姓名、出生日期、配偶或家庭成员的名字以及个人宠物的名字都不应被用作密码,因为它们很容易被猜到。在这种情况下,密码生成器是非常有用的。
建立一个密码生成器
创建一个名为passgen.py 的新文件,我们将在其中编写我们的代码。
让我们从导入Tkinter开始。
from tkinter import Button, Entry, Label, StringVar, Tk
from tkinter.ttk import Combobox
import random
tkinter.ttk 模块使用户能够访问Tkinter部件集,并允许用户导入Combobox 。组合框是一个图形用户界面元素,它合并了下拉框、列表框,并允许用户选择输入。
screen = Tk()
screen.title("Password Generator")
screen.geometry('600x400')
screen.configure(background ="red")
一个根窗口是使用Tk 类创建的。Tk() 函数协助创建这个GUI窗口,并提供许多选项,如设置标题和GUI窗口的几何形状。
geometry() 方法是Tkinter提供的众多方法之一。我们使用screen.configure() 方法将背景颜色改为红色。
def gen():
global sc1
sc1.set("")
passw=""
length=int(c1.get())
lowercase='abcdefghijklmnopqrstuvwxyz'
uppercase='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+lowercase
mixs='0123456789'+lowercase+uppercase+'@#$%&*'
我们定义了全局变量sc1 。我们使用.set() 方法将sc1 的值设置为空字符串。我们也给passw 变量分配了一个空字符串的值。
length 变量将保留c1 的值,该值将决定构成用户所选择的任何密码所需的数值(字母、数字和符号)的总数。
然后,我们创建了一个lowercase 变量,它持有所有小写字母的字符串值。之后,我们创建了uppercase 变量,以保存所有大写字母的字符串值。
在最后一行,我们定义了mixs ,它保存了所有的整数值、大写和小写的字母、标志和符号,这些都是创建高长度密码时需要的。
在gen() 函数中加入以下代码。
if c2.get()=='Low Strength':
for i in range(0,length):
passw=passw+random.choice(lowercase)
sc1.set(passw)
elif c2.get()=='Medium Strength':
for i in range(0,length):
passw=passw+random.choice(uppercase)
sc1.set(passw)
elif c2.get()=='High Strength':
for i in range(0,length):
passw=passw+random.choice(mixs)
sc1.set(passw)
我们定义了if 条件,以监测生成的密码的强度。如果用户决定了密码的长度,然后点击Low Strength ,密码生成器就会生成一个小写的随机密码。
如果用户点击Moderate Srength ,密码生成器就会生成一个小写和大写的随机密码。这减少了入侵者预测密码的机会。
如果用户点击High Strength ,密码生成器生成的随机密码是一个mixs ,包含大写字母、小写字母和特殊字母符号。这使入侵者几乎没有机会预测到密码。
在gen() 函数外添加以下代码。
sc1=StringVar('')
t1=Label(screen,text='Password Generator',font=('Arial',26),fg='white',background ="red")
t1.place(x=60,y=0)
t2=Label(screen,text='password:',font=('Arial',16),background ="red")
t2.place(x=145,y=90)
变量sc1 已被定义。为了在这个项目中设计GUI窗口的部分,我们将使用一个标签、一个输入框和一个按钮。
在GUI窗口中,我们创建了一个标签t1 ,这是标签项目的标题。我们在标签上输入文字。我们还改变了标签的字体和背景。然后通过使用x和y坐标值,我们分配了t1 标签的位置。
我们还创建了一个标签t2 ,它的占位符文本和它的背景。我们还设置了它的坐标。
添加下面的代码。
il=Entry(screen,font=('Arial',16),textvariable=sc1)
il.place(x=280,y=95)
t3=Label(screen,text='Length: ',font=('Arial',16),background ="red")
t3.place(x=150,y=130)
t4=Label(screen,text='Strength:',font=('Arial',16),background ="red")
t4.place(x=145,y=155)
c1=Entry(screen,font=('Arial',16),width=10)
c1.place(x=230,y=120)
c2=Combobox(screen,font=('Arial',16),width=15)
c2['values']=('Low Strength','Medium Strength','High Strength')
c2.current(1)
c2.place(x=237,y=155)
b=Button(screen,text='Generate',font=('Arial',16),fg='red',background ="white",command=gen)
b.place(x=230,y=195)
screen.mainloop()
使用对象il ,我们定义了入口框。我们校准了il 的字体,并将文本变量用于存储sc1 的字符串价值。我们使用x和y坐标来指定il 的条目位置。我们定义了标签t3 。然后,使用坐标值,我们给它分配了一个位置。
然后我们创建了t4 标签。使用坐标值,我们分配了位置。我们也给条目c1 一个名字。将Combobox c2的值设置为 "低强度"、"中等强度 "和 "高强度"。current() 函数用于设置c2 的值。
然后,使用x和y坐标值,我们指定了c2 Combobox 的位置。我们将b 定义为一个按钮,并使用生成器命令来建立按钮被点击时的动作。
最后,我们使用x和y坐标来分配按钮的位置b 。mainloop() 函数是一个无限循环,用来运行程序。
要运行我们的应用程序,请在你的终端上执行以下命令。
$ python passgen.py
而密码生成器的界面将是。

恭喜你建立了你的第一个Tkinter应用程序!
总结
在本教程中,我们介绍了Tkinter图形界面的一些基础知识,并使用Tkinter在Python中构建了一个密码生成器应用程序。你可以在github上找到这些代码。