依据之前提到的创建方式,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。就可看到代码。