文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

tkinter -- Entry

2023-01-30 22:02

关注

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 相同,不再举例

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯