tkinter -- Entry

发布时间:2018-06-01 17:32:33编辑:Run阅读(3581)

    Entry 用来输入单行文本

    示例:

    import tkinter as tk
    root = tk.Tk()
    tk.Entry(root, text='input >>>').pack()
    root.mainloop()

    效果:

    blob.png

    上面的代码目的是创建一个Entry对象,并在Entry上显示'input >>>',运行此代码,并没有看到文本的显示,由此可知于Lable和Button不同,Entry的text属性不可以设置Entry的文本



    在Entry中设定初始值,使用textvariable将变量与Entry绑定

    示例:

    import tkinter as tk
    root = tk.Tk()
    st = tk.StringVar()
    entry = tk.Entry(root, textvariable=st)
    st.set('www.py3study.com')
    entry.pack()
    root.mainloop()

    效果:

    blob.png

    上面的例子中将变量st与Entry绑定,然后将st的值设置为'www.py3study.com',程序运行时的初始值便设置了



    设置为只读Entry,不能更改

    Entry的另一个比较有用的属性,设置为只读,不允许用户对它的值改变.

    设置state属性为'readonly'

    示例:

    import tkinter as tk
    root = tk.Tk()
    st = tk.StringVar()
    entry = tk.Entry(root, textvariable=st)
    st.set('www.py3study.com')
    entry.pack()
    entry['state'] = 'readonly'
    root.mainloop()

    效果:

    blob.png


    实际上Entry的属性值可以使用的也为normal/readonly/disabled,

    normal   正常

    readonly 只读

    disabled 禁用


    代码:

    import tkinter as tk
    root = tk.Tk()
    st = tk.StringVar()
    entry1 = tk.Entry(root, textvariable=st)
    entry2 = tk.Entry(root, textvariable=st)
    entry3 = tk.Entry(root, textvariable=st)
    st.set('www.py3study.com')
    
    entry1['state'] = 'normal'
    entry2['state'] = 'readonly'
    entry3['state'] = 'disabled'
    
    entry1.pack()
    entry2.pack()
    entry3.pack()
    root.mainloop()

    效果:

    blob.png



    设置为密码输入框

    将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号来代替,使用属性show来指定

    示例:

    import tkinter as tk
    root = tk.Tk()
    st = tk.StringVar()
    entry = tk.Entry(root, textvariable=st)
    st.set('请输入密码')
    entry.pack()
    # 使用*来显示输入的内容,如果喜欢可以改为其它字符
    entry['show'] = '*'
    
    # 分别使用*#$显示输入的文本内容
    for i in ['*', '#', '$']:
        e = tk.StringVar()
        entry = tk.Entry(root, textvariable=e)
        e.set('password')
        entry.pack()
        entry['show'] = i
    root.mainloop()

    效果:

    blob.png



    验证输入的内容是否符合要求

    使用validate来校验输入的内容

    示例:

    import tkinter as tk
    
    def text(content):
        # 光标失去时,这个函数就会执行
        if content == 'password':
            print('正确')
            print(content)
            return True
        else:
            print('错误')
            print(content)
            return False
    
    def main():
        root = tk.Tk()
        st = tk.StringVar()
        # 需要用root.register将函数包装一下,必要的
        test_cmd = root.register(text)
    
        # %P表示 当输入框的值允许改变,该值有效,该值为当前文本框内容
        entry = tk.Entry(root, textvariable=st, validate='focusout', validatecommand=(test_cmd, '%P'))
        entry.pack()
        root.mainloop()
    
    
    if __name__ == '__main__':
        main()

    效果:

    444.gif


    还有其他的属性 fg/bg/relief/width/height/justify/state 使用方法与 Button 相同,不再举例

关键字

上一篇: tkinter -- button2

下一篇: tkinter -- CheckButton