python学习tkinter笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习tkinter笔记相关的知识,希望对你有一定的参考价值。

本次主要是学习记录一下如何做输入输出框口,比如制作密码界面之类的。

下面是一个简单的输入框的制作:

from tkinter import *

root = Tk()

e = Entry(root)#输入框
e.pack(padx=20,pady=20)

e.delete(0,END)    #把窗口从0到最后清空
e.insert(0,"默认文本")  # 在0处放入默认文本字样

mainloop()

技术分享

稍微复杂的框框

from tkinter import *

root = Tk()

Label(root,text="作品:").grid(row=0,column=0)#grid中关系着元素的网格布局第0行第0个位置
Label(root,text="作者:").grid(row=1,column=0)#布局第1行第0个位置

e1=Entry(root)
e2=Entry(root)
e1.grid(row=0,column=1,padx=10,pady=5)#布局在(0,1)位置
e2.grid(row=1,column=1,padx=10,pady=5)#布局在(1,1)位置

def show():
    print("作品:《%s》"%e1.get())#通过调用Entry的get()函数可以得到输入的字符串
    print("作者:《%s》"%e2.get())
    
Button(root,text="获取信息",width=10,command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5)
#width关系着按键长度,command是按下按键后的函数调用,sticky为W该模块靠左放置
Button(root,text="退出",width=10,command=root.quit).grid(row=3,column=1,sticky=E,padx=10,pady=5)
#root.grid是退出该窗口的函数,sticky为E该模块靠有放置
mainloop()

技术分享

如果是账号密码,如何使密码用*来表示呢?

from tkinter import *

root = Tk()

Label(root,text="账号:").grid(row=0,column=0)
Label(root,text="密码:").grid(row=1,column=0)

v1 = StringVar()
v2 = StringVar()

e1=Entry(root,textvariable=v1)
e2=Entry(root,textvariable=v2,show="*")#用*显示输入
#show是代表着输入字符的展示形式,如上可以是*,但是也可以是其他的字符,比如¥$等等
e1.grid(row=0,column=1,padx=10,pady=5)
e2.grid(row=1,column=1,padx=10,pady=5)

def show():
    print("账号:%s"%e1.get())#Entry.get()可以获得输入的字符串
    print("密码:%s"%e2.get())
    e1.delete(0,END)#清空输入框
    e2.delete(0,END)
    
Button(root,text="登录",width=10,command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5)
Button(root,text="退出",width=10,command=root.quit).grid(row=3,column=1,sticky=E,padx=10,pady=5)

mainloop()

技术分享

 

from tkinter import *

master = Tk()

def test():
    if e1.get()=="hello":
        print("正确")
        return True
    else:
        print("错误")
        e1.delete(0,END)
        return False

v=StringVar()

e1=Entry(master,textvariable=v,validate="focusout",
         validatecommand=test)#validate为focusout的意思是,当光标移除的时候将会调用validatecommand
                              #invalidcommand是在validatecommand显示非法的时候调用
e2=Entry(master)
e1.pack(padx=10,pady=10)
e2.pack(padx=10,pady=10)

mainloop()

技术分享

以上是关于python学习tkinter笔记的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

Python:GUI之tkinter学习笔记1控件的介绍及使用

Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能

python学习tkinter笔记

Python学习笔记-简单GUI开发

Python:GUI之tkinter学习笔记3事件绑定