使用Tkinter的Python图形用户界面简介

465 阅读4分钟

使用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坐标来分配按钮的位置bmainloop() 函数是一个无限循环,用来运行程序。

要运行我们的应用程序,请在你的终端上执行以下命令。

$ python passgen.py

而密码生成器的界面将是。

password image

恭喜你建立了你的第一个Tkinter应用程序!

总结

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