微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Tkinter 中设置与 .trace 一起使用的输入字段以自动完成但所有字母都转换为小写

如何解决如何在 Tkinter 中设置与 .trace 一起使用的输入字段以自动完成但所有字母都转换为小写

我在 tkinter 中有一些条目字段,用户可以用 firstnamelastname 填充,但我需要从它们中自动完成一些其他条目。问题是一些自动完成的条目我不想有大写字母。所以我希望自动完成条目用户名和电子邮件中所有从 .trace 工作的字母都是小写的。可以这样做吗?

代码

firstname = StringVar()
lastname = StringVar()
Username = StringVar()
email = StringVar()
display = StringVar()


first_name_entry = Entry(textvariable=firstname,width="30")
last_name_entry = Entry(textvariable=lastname,width="30")
Username_entry = Entry(textvariable=Username,width="30")
email_entry = Entry(textvariable=email,width="50")
display_entry = Entry(textvariable=display,width="30")


first_name_entry.place(x=300,y=100)
last_name_entry.place(x=300,y=180)
Username_entry.place(x=300,y=260)
email_entry.place(x=300,y=330)
display_entry.place(x=15,y=330)

def suggest(*args):
    Username_entry.delete(0,'end')
    Username_entry.insert(0,firstname.get()+'.'+lastname.get())
    email_entry.delete(0,'end')
    email_entry.insert(0,lastname.get()+'@example.com')
    display_entry.delete(0,'end')
    display_entry.insert(0,firstname.get()+' '+lastname.get())

firstname.trace('w',suggest)
lastname.trace('w',suggest)

解决方法

您只需在 lower() 之后使用 get() 方法。所以像:

Username_entry.insert(0,firstname.get().lower()+'.'+lastname.get().lower())
.... # rest of codes
email_entry.insert(0,lastname.get().lower()+'@example.com')

lower() 是一种字符串方法,可将您的字符串转换为小写。您还可以使用 upper() 将字符串转换为大写等等。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。