Tkinter 输入字符限制

3 投票
3 回答
39409 浏览
提问于 2025-04-16 14:29

我只想在TKinter的输入框里允许输入一个字符。我该怎么做呢?

3 个回答

-3

很可能在tkinter中有一种方法可以做到这一点,而不需要自己写代码,但我不知道具体是什么,这个内容应该能帮到你。

from Tkinter import *
def go():
    text = textbox.get()[0]  #finds the first character
    textbox.delete(0, END)   #deletes everything
    textbox.insert(0, text)  #inserts the first character at the beginning

textbox = Entry(root).pack()
button = Button(root, command=go).pack()
2

你可以通过 entry.get() 来获取字符串,然后检查这个字符串的长度是否大于 1,如果是的话,就删除超出设定长度的字符。

if len(entry.get()) > 1:
    entry.delete(1, END)

在 if 语句中的数字 1 是你的限制。delete() 中的 1 是从哪里开始删除的意思。所以,从第一个字符之后的所有内容都会被删除。

17

我在这里已经五年了 :)

from tkinter import *

Window = Tk()
Window.geometry("200x200+50+50") # heightxwidth+x+y

mainPanel = Canvas(Window, width = 200, height = 200) # main screen
mainPanel.pack()

entry_text = StringVar() # the text in  your entry
entry_widget = Entry(mainPanel, width = 20, textvariable = entry_text) # the entry
mainPanel.create_window(100, 100, window = entry_widget)

def character_limit(entry_text):
    if len(entry_text.get()) > 0:
        entry_text.set(entry_text.get()[-1])

entry_text.trace("w", lambda *args: character_limit(entry_text))

你可以修改这行代码:entry_text.set(entry_text.get()[-1]),在方括号里改变数字可以调整范围。

比如说: entry_text.set(entry_text.get()[:5]) 这个是限制为前5个字符;entry_text.set(entry_text.get()[-5:]) 这个是限制为最后5个字符;entry_text.set(entry_text.get()[:1]) 这个是只取第一个字符;entry_text.set(entry_text.get()[:-1]) 这个是去掉最后一个字符。

撰写回答