Python3使用tkinter做一个简单的有背景的登录界面

from tkinter import *
import pymysql

# 创建根窗口,并添加组件
root = Tk()
root.title('登录')
root.resizable(0, 0)  # 设置窗口大小不可变
canvas = Canvas(root)
canvas.pack(side='top')
# 创建标签
canvas.create_window(100, 50, window=Label(root, font=('宋体', 10), text='用户名', justify='left', padx=5, pady=4))
canvas.create_window(100, 90, window=Label(root, font=('宋体', 10), width=5, text='密码', justify='left', padx=5, pady=4))
# 账号密码输入框
canvas.create_window(210, 50, window=Entry(root, borderwidth=3))
canvas.create_window(210, 90, window=Entry(root, borderwidth=3, show='*'))
canvas.create_window(330, 90, window=Label(root, text='忘记密码', fg='red', font=('宋体', 10)))
# 创建画布背景图
photo = PhotoImage(file='C:\\Users\\asus\\Desktop\\newfile\\faf6102fae04d8ee5a8c5d604d118427.png')
canvas.create_image(200, 150, image=photo)
# 创建登录按钮
canvas.create_window(190, 200, window=Button(root, width=15, bg='#87CEEB', text='立即登录'))


# 进行数据库连接,这里的代码为点击登录后,数据传入数据用,因为本博客主要是讲一下界面心得,所以这里代码被我注释了。
# connection = pymysql.connect('localhost', 'root', '******', "tang_crawler")
# cursor = connection.cursor()
# try:
#     cursor.execute('select * from user_information')
#     user_information = cursor.fetchall()
# except Exception as e:
#     print(e)
# finally:
#     if connection:
#         cursor.close()
#     if cursor:
#         connection.close()
#

# button点击事件
def callback():
    # user = int(zh_entry.get())
    # password = int(mm_entry.get())
    # if user == user_information[0][0] and password == user_information[0][1]:
    #     top = Toplevel()
    #     top.title('学生管理系统')
    #     top.geometry('400x400')
    #     root.state("iconic")  # 隐藏窗口,相当于窗口最小化
    # else:
    pass


mainloop()

运行效果图

说一下,我的背景图是在百度上搜索下载的,选择的是大尺寸的高清图,所以你用其它尺寸可能就不是这样,或者需要调整图片和组件的偏移值。这里的UI优化不怎么好,所以也求大神怎么去优化各组件的样式呢,有没有推荐的Font。

 

 

  • 23
    点赞
  • 176
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要给 Python 中的 tkinter 登录界面添加背景图片,可以使用 PIL 模块来实现。以下是一个简单的代码示例: ```python from tkinter import * from PIL import ImageTk, Image root = Tk() # 设置窗口大小和标题 root.geometry("500x500") root.title("登录界面") # 加载背景图片 bg_image = ImageTk.PhotoImage(Image.open("background.jpg")) bg_label = Label(root, image=bg_image) bg_label.place(x=0, y=0, relwidth=1, relheight=1) # 添加用户名和密码输入框 username_label = Label(root, text="用户名") username_label.pack() username_entry = Entry(root) username_entry.pack() password_label = Label(root, text="密码") password_label.pack() password_entry = Entry(root, show="*") password_entry.pack() # 添加登录按钮 login_button = Button(root, text="登录") login_button.pack() root.mainloop() ``` 在上面的代码中,我们首先导入了 tkinter 和 PIL 模块。然后,我们创建了一个窗口,并设置了它的大小和标题。 接着,我们使用 PIL 模块加载了一张背景图片,并将它添加到了一个 Label 控件中。我们使用了 `place()` 方法将这个 Label 控件放置在窗口的最底层,并将它的宽度和高度设置为相对于窗口的比例,这样就可以保证背景图片始终铺满整个窗口。 最后,我们添加了用户名和密码输入框以及一个登录按钮。这里并没有什么特别之处,只是普通的 tkinter 控件罢了。 需要注意的是,在使用 PIL 模块加载图片时,我们需要将图片转换为 ImageTk.PhotoImage 类型,否则无法在 tkinter 窗口中显示。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值