如何将tkinter文本输入全部大写?

我在tkinter中有一个顶层窗口,其中有一些输入字段。有没有办法让它将输入的字母更改为大写,无论是在输入时还是在输入后,在输入字段中?我不想把输入的内容打印出来。因此,举个例子:

选择 | 换行 | 行号
  1. from Tkinter import *
  2. win = Tk()
  3.  
  4. Label(win, text='Enter user nick:').pack(side=LEFT)
  5. Entry(win, width=20).pack(side=LEFT)
  6.  
  7. mainloop()
  8.  

当我在输入框中输入孩子时,或者在输入之后,我希望它变成全部大写。

# 回答1


您可以将事件绑定到您的小部件,该小部件调用一个函数将文本转换为大写。您将需要初始化
文本变量
对于Entry小部件。在您的情况下,没有其他东西可以获得关注,否则您可以将""绑定到小部件。""然而,效果很好。

选择 | 换行 | 行号
  1. from Tkinter import *
  2. win = Tk()
  3.  
  4. def caps(event):
  5.     v.set(v.get().upper())
  6.  
  7. Label(win, text='Enter user nick:').pack(side=LEFT)
  8. v = StringVar()
  9. w = Entry(win, width=20, textvariable=v)
  10. w.pack(side=LEFT)
  11. w.bind("<KeyRelease>", caps)
  12.  
  13. mainloop()
# 回答2


我明白了!这就像是一种魔咒!谢谢

标签: python

添加新评论