首页 > Python资料 博客日记

小白学习之Python—做一个简单的用户登录跳转界面

2024-06-20 08:00:04Python资料围观127

文章小白学习之Python—做一个简单的用户登录跳转界面分享给大家,欢迎收藏Python资料网,专注分享技术知识

一、界面效果        

二、具体代码

        在程序最初阶段,先有包的导入,如:

from tkinter import *
from tkinter.messagebox import *

        包有两种导入方式,第二种方法是直接将库导入整个程序中,但是占大量内存,小文件可使用。

①import (库)as(函数名)              //例如:import tkinter as t 
②from (库) import  *                       //例如:from tkinter import *        

        1、关于整体的结构设计

                a:窗体的构造

from tkinter import *
from tkinter.messagebox import *

#第一个窗体
class page1:

    def __init__(self,win):
        self.cvar=IntVar()
        self.v1=StringVar()
        self.v2=StringVar()
        self.win=win
        self.win.title("登录窗口")        #窗体名称
        self.win.geometry("500x300")      #窗体的大小
        #self.win.config(bg='yellow')

关于class类的理解将另写一篇博文记录,点击查看

在这先简单了解一下def函数的编写方法

def 函数名(参数1,参数2,参数3,……,参数n):

        函数体(语句块)

return[表达式]

                b:用户名和密码实例化

#标签实例化、定位
        self.lab1=Label(self.win,text="用户名:")
        self.lab1.place(x=100,y=50,width=50,height=30)
        self.lab2=Label(self.win,text="密  码:")
        self.lab2.place(x=100,y=100,width=50,height=30)
#文本框实例化、定位
        self.textname=Entry(textvariable=self.v1)
        self.textpwd=Entry(textvariable=self.v2,show="*")
        self.textname.place(x=180,y=50,width=150,height=30)
        self.textpwd.place(x=180,y=100,width=150,height=30)

                c:登录、重置、退出按钮实例化

#登录、重置、退出按钮实例化和定位       
        self.butt1=Button(self.win,text='登录',command=self.login)
        self.butt1.place(x=100,y=180,width=50,height=30)

        self.butt2=Button(self.win,text='重置',command=self.reset)
        self.butt2.place(x=200,y=180,width=50,height=30)
       
        self.butt3=Button(self.win,text='退出',command=self.quit1)
        self.butt3.place(x=300,y=180,width=50,height=30)

                d:记住密码复选实例化

#记住密码复选框
        self.remb=Checkbutton(self.win,text='记住密码',variable=self.cvar,onvalue=1,command=self.jizhu)
        self.remb.place(x=300,y=150,width=80,height=30)

以上实例化代码都包含在def __init__(self,win)的函数中


        2、关于功能实现的编写 

               AB:如何进行登录判断和跳转页面

#功能编写:登录窗口、跳转页面       
    def login(self):
        user=self.textname.get()
        pwd=self.textpwd.get()
        if user == 'Mortal' and pwd == '123456':
           self.butt1.destroy()
           self.butt2.destroy()
           self.butt3.destroy()
           self.lab1.destroy()
           self.lab2.destroy()
           self.textname.destroy()
           self.textpwd.destroy()
           self.remb.destroy()
           page2(root)
        else:
            showwarning('警告','用户名或密码错误')

        这里的showwarning使用的就是tkinter.messagebox库中的函数,如图一所示,

图二和图三分别为showinfo和showerror。

                C:如何重置文本框

#功能编写:重置文本框
    def reset(self):
        self.v1.set("")          #self.textname.delete(0,END)
        self.v2.set("")          #self.textpwd.delete(0,END)

方法一: self.v1.set("")

得搭配  a中的self.v1=StringVar()

       和  b中的textvariable=self.v1

使用,含义是在文本框中放置空

方法二:self.textname.delete(0,END)

含义:将文本框中从第一个位置到最后一个位置的值删除

                D:如何关闭窗口

#功能编写:窗体关闭
    def quit1(self):
        self.win.destroy()

                E:如何使用记住密码

#功能编写:记住密码
    def jizhu(self):
        if self.cvar.get()==1:
           self.v1.set('Mortal')
           self.v2.set('123456')
        else:
            self.v1.set("")
            self.v2.set("")
            self.textname.focus()

        做的记住密码十分简陋,暂时只能记住固定的账户和密码(待完善咯)。

                &第二个窗体

#第二个窗体
class page2:
    def __init__(self,win):
        self.win=win
        self.win.title("第二个窗体")
        self.win.geometry("500x300")
        #self.win.config(bg='blue')
        
#退出按钮实例化和定位 
        self.buttback=Button(self.win,text='返回',command=self.back)
        self.buttback.place(x=380,y=180,width=50,height=30)

#功能编写:返回上一个窗体
    def back(self):
        self.buttback.destroy()
        page1(root)

        

!!!!!!!!!!!!

        程序最后写这三条语句使窗体能够出现在桌面

#实现窗体
root=Tk()
p1=page1(root)

root.mainloop()

注:关于注册功能还待完善,除了通过SQL还可以通过txt简略对内容进行储存


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐