Python:Tkinter消息框 - 错误处理

2 投票
1 回答
10928 浏览
提问于 2025-04-18 06:24

我想用Tkinter的消息窗口来处理错误。简单来说,就是告诉用户只能输入"x,y,z"。

这个功能是在一个程序中使用的,程序会要求用户输入,接受的整数范围是大于等于0且小于等于100。目前这个功能可以正常工作,但只是在标签上显示信息。

有没有人能建议我怎么用Tkinter来显示错误窗口?还有,怎么才能限制输入只能是整数呢?下面是一个添加函数,当用户输入一个数字并点击添加时,这个函数就会被触发。

如果我没有解释清楚,请告诉我,我会尽量详细说明。

def add():
    try:

        value = int(MarkEnt.get())
        assert 0 <= value <= 100
        mark.set(value)
        exammarks.append(value)
        ListStud.insert(len(exammarks),value)

    except AssertionError:
        error1.set("Please only input whole numbers from 0 to 100")
        errorLbl.grid()

1 个回答

5

你可以使用 tkMessageBox 模块来显示错误提示框。

from Tkinter import *
import tkMessageBox

def clicked():
    tkMessageBox.showerror("Error", "Please only input whole numbers")

root = Tk()
button = Button(root, text = "show message box", command = clicked)
button.pack()
root.mainloop()

用tkinter创建的错误信息

还有什么办法可以限制输入只接受整数吗?

你可以使用 validatecommand 来拒绝不符合你要求的输入。

from Tkinter import *

def validate_entry(text):
    if text == "": return True
    try:
        value = int(text)
    except ValueError: #oops, couldn't convert to int
        return False
    return 0 <= value <= 100

root = Tk()

vcmd = (root.register(validate_entry), "%P")
entry = Entry(root, validate = "key", validatecommand=vcmd)
entry.pack()

root.mainloop()

撰写回答