欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python笔记(二十六) tkinter(4) 输入框

程序员文章站 2022-03-26 22:25:29
...
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)
e1.grid(row=0,column=1,padx=10,pady=5)
e1.insert(0,'输入手机号/微信号')

e2 = Entry(root,textvariable=v2,show='*')
e2.grid(row=1,column=1,padx=10,pady=5)


def show():
    print('账号:%s' % e1.get())
    print('密码:%s' % e2.get())

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()

grid是把组件按照表格来安排,row是行,column是列
e1.insert是一个特定函数,0是特定序号
e2 = Entry(root,textvariable=v2,show='*')中的show是将输入的都变成星号
e1.get可以获得文本内容

button中的stricky用法和anchor一样,用东西南北表示
但是packgrid不能同时使用,即使不是一个组件用
python笔记(二十六) tkinter(4) 输入框


这里引入一个参数validate
python笔记(二十六) tkinter(4) 输入框
以及两个验证参数validatecommandinvalidcommand
和两个验证函数
如果再输入框中进行了validate的内容
就执行validatecommand
否则执行invalidcommand
这两个验证函数都只能返回bool

from tkinter import *

root = Tk()

v = StringVar()

def text1():
    if v.get() == 'yyr':
        print('对')
        return True
    else:
        print('错')
        return False

def text2():
    print('text2被调用了')
    return True

e1 = Entry(root,textvariable=v,validate = 'focusout',\
           validatecommand=text1,invalidcommand=text2)
e2 = Entry(root)

e1.pack(padx=10,pady=10)
e2.pack(padx=10,pady=10)

mainloop()

python笔记(二十六) tkinter(4) 输入框
python笔记(二十六) tkinter(4) 输入框

相关标签: 入门学习