哟哟哟!这里是好久不见的Python系列!
这节课我们要学习使用tkinter来制作图像化样式的网站登录页面
Tip:这里制作的只是前端效果,没有注册、查看密码是否正确等过程!
完成效果如下:
怎么样,不错吧!
效果拆分为这几个步骤:
1.建立有标题的tkinter窗口
2.建立文本“输入您的密码”
3.建立输入框,输入的密码都显示为星号
4.建立登入按钮
5.按下登入按钮后建立文本框“登入成功”
看起来挺难的哦
你可要仔细看了
一、建立有标题的tk窗口
建立tk图形化窗口标准代码如下:
from tkinter import *root = Tk()
这个时候运行会出现如下页面:
第一句from tkinter import *是引入tkinter的代码
第二句root是一个变量名称,它代表了这个主窗口
更多root属性表:
属性 | 功能 |
root.title(' ') | 修改tkinter窗口标题 |
root.resizable(x,x) | 修改tkinter窗口大小可变性 |
root.geometry('三位数 x 三位数') | 修改tkinter窗口大小 |
root.update | 刷新tkinter窗口 |
root.mainloop() | 进入消息循环(必须放在代码结尾) |
而第二句中的Tk()是一个tkinter库中的函数
那我们要如何让标题改变呢?
方法1:
这种办法更加麻烦一点
就是在后面再加一行代码:
root.title("欢迎来到Charlie的网站!")
方法二:
更加简便的一种办法
将root = Tk()替换成:
root = Tk(classname = "欢迎来到Charlie的网站!")
二、建立文本框“输入您的密码”
建立文本框的标准格式是:
label = Label(root,text = "文本")label.pack()
第一行就是在label变量中设置我们文本的属性
Label就是文本属性
pack是一个布局参数
更多pack参数属性表:
after: | 将组件置于其他组件之后 |
before: | 将组件置于其他组件之前 |
anchor: | 组件的对齐方式(顶对齐'n',底对齐's',左对齐'w',右对齐'e') |
side: | 组件在主窗口的位置(可以为'top','bottom','left','right') |
fill: | 填充方式(Y垂直,X水平,BOTH水平加垂直),是否在某个方向充满窗口 |
expand: | 控件是否会随窗口缩放(1可扩展,0不可扩展) |
用来“布置”tkinter窗口
我们将“输入您的密码”填充进去
还考虑到我们待会还会有一个显示“登录成功”的代码
所以这里可以把它改成:
label_1 = Label(root,text = "输入您的密码")label_1.pack()
更多标签组件属性表:
Anchor | 标签中文本的位置 | background(bg) foreground(fg) | 背景色;前景色 |
borderwidth(bd) | 边框宽度 | width、height | 标签宽度;标签高度 |
bitmap | 标签中的位图 | font | 字体 |
image | 标签中的图片 | justify | 多行文本的对齐方式 |
text | 标签中的文本(使用"\n"可以换行) | textvariable | 显示文本自动更新,与StringVar等配合使用 |
三、建立输入框,输入的密码都显示为星号
entry = Entry(root,show = "*")entry.pack()
这两句代码的原理和第二个效果是一样的
四、建立登入按钮 + 五、显示“登入成功”
因为按下按钮后需要引用显示“登入成功”的函数
所以我们先把显示文本的函数编好
函数可以让其返回一个参数,也可以直接执行程序
我们这里是需要直接执行程序
格式是:
def function(): command
代入我们的程序就是:
def login(): label_2 = Label(root, text = "登入成功!") label_2.pack()
建立按钮的格式是:
button = Button(root,text = "文本", fg = '颜色', command = 程序)button.pack()
代入我们的程序就是
button = Button(root,text = "登入", fg = 'black', command = login)button.pack()
总程序:
from tkinter import *root = Tk(className = "欢迎来到Charlie的网站!")label_1 = Label(root,text = "输入您的密码")label_1.pack()entry = Entry(root,show = "*")entry.pack()def login(): label_2 = Label(root, text = "登入成功!") label_2.pack()button = Button(root,text = "登入", fg = 'black', command = login)button.pack()root.mainloop()
更多组件表:
名称 | 功能 |
Button | 按钮 |
Canvas | 绘制图形 |
Checkbutton | 复选框 |
Entry | 文本输入框(单行) |
Text | 文本输入框(多行) |
Frame | 框架(将几个组件组成一组) |
Label | 标签(文字、图片) |
Listbox | 列表框 |
Menu | 菜单 |
Menubutton | 可被"Menu"组件替代 |
Message | 与"Label"组件相似,可根据自身大小换行 |
Radiobutton | 单选框 |
Scale | 滑块 |
Scrollbar | 滚动条 |
Toplevel | 创建子窗口 |
今天就学这么多了
记得点个赞、点个在看和加关注
我们下次再见
拜拜!
注:表格来源于“邵红祥”编著的“跟孩子一起玩编程-Python编程快速入门”。如有侵权,立即告知!
邮箱:charlieloveprogram@qq.com