-1

我想在 Python3 中使用 tkMessageBox 发出警告。当用户未从列表框中选择元素时,应该会启动此警告。不幸的是,每当我尝试实现消息框时,它都不会像预期的那样启动。我有一个名为 pietalkgui.py 的脚本的代码,其中包含我要实现消息框的代码:

from tkinter import messagebox

# Gives warning if no user is selected for whisper
def whisperwarning(self):
    # show warning to user
    showwarning("Select User","Select a user to whisper to!")

# Handles whisper
def whispermessage(self):
    # stores element selected in temp variable
    temp = self.userslist.get(self.userslist.curselection())
     # if no item is selected from userslist (listbox)
    if temp == "":
        # launch warning to user if no item is selected
        self.whisperwarning()
    else:
        # retrieves usernames from userslist
        username = temp
        # storing whisper
        outwhisper = ' /w "' + username +'" ' + self.messagebox.get("0.0",END)
        # handling whisper
        self.handler(outwhisper)
        # erase message in message box
        self.messagebox.delete("0.0",END)

我在 tkMessageBox 的实现中做错了吗?还是我没有正确检查是否从列表框中选择了项目?

4

1 回答 1

0

看来您正在调用该方法showwarning,但尚未定义或导入它。那是messagebox模块函数的名称,所以也许您需要更改它:

showwarning("Select User","Select a user to whisper to!")

...对此:

messagebox.showwarning("Select User","Select a user to whisper to!")

此外,FWIW,此代码略有不正确:self.messagebox.delete("0.0",END)- 文本索引从“1.0”开始,而不是“0.0”。

于 2014-12-15T16:31:00.757 回答