建立一个成绩查询系统界面,其中Label、Button和Entry各自左对齐


# 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参数来控制标签和输入框的左对齐方式,使界面布局更加整齐。以下是代码的详细解析和改进说明:


代码解析:

  1. 导入库

    from tkinter import *

    导入了 tkinter 库,用于创建图形用户界面(GUI)。

  2. 定义 printInfo 函数

    def printInfo(): #打印输入信息
        print("Account:%s\nPassword: %s" % (accountE.get(),pwdE.get()))
    • 这是一个简单的函数,用于获取用户在 accountEpwdE 文本框中输入的内容,并将其打印到控制台。

    • accountE.get():获取 accountE 文本框中的内容(账号)。

    • pwdE.get():获取 pwdE 文本框中的内容(密码)。

    • print 函数将账号和密码格式化输出到控制台。


代码功能:

  • 该函数通常与 tkinter 的按钮控件绑定,当用户点击按钮时,触发该函数,打印输入的内容。

  • 例如:

    loginbtn = Button(root, text="Login", command=printInfo)

    点击“Login”按钮后,会调用 printInfo 函数。

  1. 创建主窗口

root = Tk()
root.title("ch5_4")

创建了一个名为root的主窗口,并设置窗口标题为“ch5_4”。

  1. 添加Logo和欢迎信息

    msg="欢迎进入广东石油化工学院成绩查询系统"
    sseGif=PhotoImage(file="sse1.gif") #Logo图像文件
    logo=Label(root, image=sseGif,text=msg,compound=BOTTOM)

    创建了一个Label控件,用于显示Logo图像和欢迎信息。compound=BOTTOM表示文本将显示在图像的下方。

  2. 添加账号和密码标签

    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表示西,即左对齐)。

  3. 添加账号和密码输入框

    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表示输入框在网格单元格中左对齐。

  4. 添加登录和退出按钮

    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像素的间距。

  5. 运行主循环

    root.mainloop()

    启动tkinter的主事件循环,使窗口保持显示状态,直到用户关闭窗口。


改进说明:

  1. 左对齐布局

    • 使用sticky=W参数,使标签和输入框在网格单元格中左对齐,界面布局更加整齐。

    • 按钮也使用了sticky=W,确保它们在网格单元格中左对齐。

  2. 间距调整

    • 通过pady=10pady=5为输入框和按钮添加了垂直间距,避免界面元素过于紧凑。

  3. 代码结构清晰

    • 代码逻辑清晰,功能模块化,便于理解和维护。


运行效果:

  1. 运行程序后,会弹出一个窗口,窗口顶部显示Logo和欢迎信息。

  2. 用户可以在“Account”和“Password”文本框中输入账号和密码。

  3. 点击“Login”按钮后,程序会在控制台打印出输入的账号和密码。

  4. 点击“Quit”按钮会退出程序。


注意事项:

  1. Logo图像文件

    • 代码中使用了sse1.gif作为Logo图像文件,确保该文件存在于程序运行的目录中,否则程序会报错。

    • 如果图像文件不存在,可以将PhotoImage(file="sse1.gif")替换为其他有效的图像文件路径,或者直接移除Logo部分。

  2. Python版本

    • 该代码适用于Python 3.x版本,tkinter库已经内置,无需额外安装。

  3. 密码显示

    • 密码输入框中的内容以*显示,保护用户输入的隐私。


进一步改进建议:

  1. 输入验证

    • 可以添加输入验证功能,确保用户输入的账号和密码符合要求(例如,账号不能为空,密码长度必须大于6位等)。

  2. 界面美化

    • 可以使用ttk模块(tkinter的扩展)来创建更现代化的界面控件。

    • 可以为按钮和标签添加更多的样式(如背景颜色、字体等)。

  3. 功能扩展

    • 可以将账号和密码与数据库或文件中的数据进行比对,实现真正的登录验证功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值