# ch5_4.py
from tkinter import *
def printInfo(): #打印输入信息
print("Account:%s\nPassword: %s" % (accountE.get(),pwdE.get()))
root = Tk()
root.title("ch5_4")
msg="欢迎进入广东石油化工学院成绩查询系统"
sseGif=PhotoImage(file="sse1.gif") #Logo图像文件
logo=Label(root, image=sseGif,text=msg,compound=BOTTOM)
accountL=Label(root,text="Account") # account标签
accountL.grid(row=1,sticky=W)
pwdL=Label(root,text="Password") # pwd标签
pwdL.grid(row=2,sticky=W)
logo.grid(row=0,column=0,columnspan=2,pady=10,padx=10)
accountE=Entry(root) # account文本框
pwdE=Entry(root,show="*") # pwd文本框
accountE.grid(row=1,column=1,sticky=W) # 定位account文本框
pwdE.grid(row=2,column=1,sticky=W,pady=10) # 定位pwd文本框
# 以下建立Login和Quit按钮
loginbtn=Button(root,text="Login",command=printInfo)
loginbtn.grid(row=3,column=0,sticky=W,pady=5)
quitbtn=Button(root,text="Quit",command=root.quit)
quitbtn.grid(row=3,column=1,sticky=W,pady=5)
root.mainloop()
这段代码是基于tkinter库创建的一个登录界面程序。与之前的代码相比,主要的改进是使用了sticky=W参数来控制标签和输入框的左对齐方式,使界面布局更加整齐。以下是代码的详细解析和改进说明:
代码解析:
-
导入库:
from tkinter import *导入了
tkinter库,用于创建图形用户界面(GUI)。 -
定义
printInfo函数:def printInfo(): #打印输入信息 print("Account:%s\nPassword: %s" % (accountE.get(),pwdE.get()))-
这是一个简单的函数,用于获取用户在
accountE和pwdE文本框中输入的内容,并将其打印到控制台。 -
accountE.get():获取accountE文本框中的内容(账号)。 -
pwdE.get():获取pwdE文本框中的内容(密码)。 -
print函数将账号和密码格式化输出到控制台。
-
代码功能:
-
该函数通常与
tkinter的按钮控件绑定,当用户点击按钮时,触发该函数,打印输入的内容。 -
例如:
loginbtn = Button(root, text="Login", command=printInfo)点击“Login”按钮后,会调用
printInfo函数。
-
创建主窗口:
root = Tk()
root.title("ch5_4")
创建了一个名为root的主窗口,并设置窗口标题为“ch5_4”。
-
添加Logo和欢迎信息:
msg="欢迎进入广东石油化工学院成绩查询系统" sseGif=PhotoImage(file="sse1.gif") #Logo图像文件 logo=Label(root, image=sseGif,text=msg,compound=BOTTOM)创建了一个
Label控件,用于显示Logo图像和欢迎信息。compound=BOTTOM表示文本将显示在图像的下方。 -
添加账号和密码标签:
accountL=Label(root,text="Account") # account标签 accountL.grid(row=1,sticky=W) pwdL=Label(root,text="Password") # pwd标签 pwdL.grid(row=2,sticky=W)创建了两个标签,分别用于显示“Account”和“Password”。
sticky=W表示标签在网格单元格中左对齐(W表示西,即左对齐)。 -
添加账号和密码输入框:
accountE=Entry(root) # account文本框 pwdE=Entry(root,show="*") # pwd文本框 accountE.grid(row=1,column=1,sticky=W) # 定位account文本框 pwdE.grid(row=2,column=1,sticky=W,pady=10) # 定位pwd文本框创建了两个输入框,分别用于输入账号和密码。
show="*"表示密码输入框中的内容将以*显示。sticky=W表示输入框在网格单元格中左对齐。 -
添加登录和退出按钮:
loginbtn=Button(root,text="Login",command=printInfo) loginbtn.grid(row=3,column=0,sticky=W,pady=5) quitbtn=Button(root,text="Quit",command=root.quit) quitbtn.grid(row=3,column=1,sticky=W,pady=5)创建了两个按钮:
-
Login按钮:点击后会调用
printInfo函数,打印账号和密码。 -
Quit按钮:点击后会退出程序。
-
sticky=W表示按钮在网格单元格中左对齐。 -
pady=5表示在按钮的上下方向添加5像素的间距。
-
-
运行主循环:
root.mainloop()启动
tkinter的主事件循环,使窗口保持显示状态,直到用户关闭窗口。
改进说明:
-
左对齐布局:
-
使用
sticky=W参数,使标签和输入框在网格单元格中左对齐,界面布局更加整齐。 -
按钮也使用了
sticky=W,确保它们在网格单元格中左对齐。
-
-
间距调整:
-
通过
pady=10和pady=5为输入框和按钮添加了垂直间距,避免界面元素过于紧凑。
-
-
代码结构清晰:
-
代码逻辑清晰,功能模块化,便于理解和维护。
-
运行效果:
-
运行程序后,会弹出一个窗口,窗口顶部显示Logo和欢迎信息。
-
用户可以在“Account”和“Password”文本框中输入账号和密码。
-
点击“Login”按钮后,程序会在控制台打印出输入的账号和密码。
-
点击“Quit”按钮会退出程序。
注意事项:
-
Logo图像文件:
-
代码中使用了
sse1.gif作为Logo图像文件,确保该文件存在于程序运行的目录中,否则程序会报错。 -
如果图像文件不存在,可以将
PhotoImage(file="sse1.gif")替换为其他有效的图像文件路径,或者直接移除Logo部分。
-
-
Python版本:
-
该代码适用于Python 3.x版本,
tkinter库已经内置,无需额外安装。
-
-
密码显示:
-
密码输入框中的内容以
*显示,保护用户输入的隐私。
-
进一步改进建议:
-
输入验证:
-
可以添加输入验证功能,确保用户输入的账号和密码符合要求(例如,账号不能为空,密码长度必须大于6位等)。
-
-
界面美化:
-
可以使用
ttk模块(tkinter的扩展)来创建更现代化的界面控件。 -
可以为按钮和标签添加更多的样式(如背景颜色、字体等)。
-
-
功能扩展:
-
可以将账号和密码与数据库或文件中的数据进行比对,实现真正的登录验证功能。
-
3486

被折叠的 条评论
为什么被折叠?



