On a tkinter GUI I want to print different messages on a canvas depending on the state of a button I hover over. If the button itself is DISABLED, I want to display another message on the canvas than when the button is NORMAL. I have this (stripped) relevant code:
from tkinter import *
class app:
def __init__(self):
self.window = Tk()
self.button = Button(self.window,text="Button",command=self.someCommand,state=DISABLED)
self.button.bind("<Enter>", self.showText)
self.button.bind("<Leave>", self.hideText)
self.window.mainloop()
def showText(self):
if self.button["state"] == DISABLED:
#print this text on a canvas
else:
#print that text on a canvas
def hideText(self):
#remove text
def main()
instance = app()
main()
This always draws 'that text' on the canvas, instead of 'this text'
I have tried the following too:
self.button['state']
== 'disabled'
== 'DISABLED'
if I print:
print(self.button["state"] == DISABLED)
it gives me:
False
Changing the state using:
self.button["state"] = NORMAL
works as I would expect.
I have read through a few topics here but none seem to answer the question to why the if-statement doesn't work.