How to properly implement tkMessageBox in Python3.4?

3.8k views Asked by At

I want to launch a warning using tkMessageBox in Python3. This warning is supposed to launch when a user doesn't select an element from a listbox. Unfortunately whenever I try to implement message box it does not launch like it is supposed to. I have code for a script called pietalkgui.py which contains the code where I want to implement the message box:

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)

Am I doing something wrong in the implementation of tkMessageBox? Or am I not properly checking if not item is selected from the listbox?

1

There are 1 answers

1
Bryan Oakley On

It appears that you are calling the method showwarning, but haven't defined it or imported it. That is the name of a function the messagebox module, so perhaps you need to change this:

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

... to this:

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

Also, FWIW, this code is slightly incorrect: self.messagebox.delete("0.0",END) -- text indices start at "1.0", not "0.0".