Python创建简单登录界面

Python013

Python创建简单登录界面,第1张

创建一个简单的登录窗口,假设用户名为TestName,密码为Python。

依据之前提到的创建方式,grid布局设计UI,设计登录用户名和密码检查函数。

from tkinterimport *

def LoginCheck():

        name = txtName.get()

        password = txtPassword.get()

        name_len =len(name)

        password_len =len(password)

        if name =="TestName" and password =="Python":

            msgLabel['text'] ='登录成功'

        elif  name =="TestName" and password !="Python":

            msgLabel['text'] ='密码错误'

            txtPassword.delete(0,password_len)

        else:

                msgLabel['text'] ='用户名错误'

                txtName.delete(0,name_len)

              txtPassword.delete(0, password_len)

wnd = Tk()

lblName = Label(wnd, text='User Name:')

lblName.grid(row=0, column=0, sticky=W)

txtName = Entry(wnd)

txtName.grid(row=0, column=1, sticky=E)

lblPs = Label(wnd, text='密码:')

lblPs.grid(row=1, column=0, sticky=W)

txtPassword = Entry(wnd)

txtPassword["show"] ='*'

txtPassword.grid(row=1, column=1, sticky=E)

btn = Button(wnd, text='登录', command=LoginCheck)

btn.grid(row=2, column=1, sticky=E)

# Message

msgLabel = Label(wnd, text='')

msgLabel.grid(row=3)

wnd.mainloop()

运行效果如下:

可输入不同的用户名和密码检测逻辑上设计是否正确。

用户名错误:

密码错误:

登录成功:

步骤如下:

在开始菜单所有应用中找到PyQt文件夹下的Designer,双击打开。

新建窗体对话框选择“Dialog without Buttons”,点击创建按钮。

在左侧控件栏中拖入一个Label和一个Line Edit并将其选中后进行拖动复制位三个。再从左侧拖入一个 PushButton按钮。

双击Label和PushButton控件,输入名称,使其符合要求。

分别选中单个控件,在右侧属性栏中修改其属性,并摆放好大致位置。修改属性应包括给控件一个见名知意的对象名称;密码Line Edit控件的echoMode属性的值设置为Password,即不可见;精确调整控件大小和摆放位置,使之对齐等等(摆放位置亦可通过下述的“布局”进行对齐)。

单击菜单栏的Edit,编辑Tab顺序,从上到下依次是1,2,3,4。

从左侧拖入一个Horizontal Spacer控件置于PushButton控件同行左侧,并修改使其长度适宜。分别选择位于同一行的控件并点击“窗口”中的“水平布局”,最后选中所有,点击“窗口”下拉菜单下的“垂直布局”。选中所有,并“栅格布局”和调整对话框到合适大小,结果如下。

切换到“编辑信号/槽”模式,拖动确定到空白位置。在弹出的“配置连接”对话框中左选择“clicked()”,右选择“accept()”。

保存为ui文件,不妨命名为test。

终端下使用盘符和cd命令进入到ui文件所在的位置。需要注意的是,进入位置需要分两步走。例如ui保存在 C:/savehere/,而当前的目录是在D:/,则我们要命令提示符窗口运行C:和cd C:/savehere/,不区分先后顺序。

进入目录后,使用pyuic4工具进行转化,具体敲pyuic4 test.ui -o test.py,并回车。

右键点击在test.ui相同目录下生成test.py,选择Edit with IDLE。就可看到代码。