(Dec-04-2020, 09:33 AM)buran Wrote: [ -> ]can you post minimal reproducible example and the full traceback you get?
Here is custom Button:
from tkinter import *
from tkinter.font import Font
import Utils.Constant as Constant
from time import *
from View.Widget.Widget import Widget
class ButtonWidget(Widget):
"""description of class"""
def __init__(self, parent, buttonText, buttonWidth, buttonHeight):
Widget.__init__(self, parent)
self.text = StringVar()
self.text.set(buttonText)
self.enabled = True
self.clicked = False
self.buttonFont = Font(family=Constant.FontFamily, size=Constant.FontSmallSize)
self.pixelVirtual = PhotoImage(width=1, height=1)
self.border = Frame(self, highlightbackground=Constant.LightBlue, highlightcolor=Constant.LightBlue, highlightthickness=1)
self.button = Button(self.border, relief=FLAT, textvariable=self.text, width=buttonWidth, height=buttonHeight, cursor="hand2",
background=Constant.White, foreground=Constant.LightBlue, font=self.buttonFont, image=self.pixelVirtual, compound="c")
self.button.bind("<ButtonPress>", self.onPress)
self.button.bind("<ButtonRelease>", self.onRelease)
self.button.pack(expand=True, fill='both')
self.border.pack()
def getTkWidget(self):
return self.button
def setText(self, buttonText):
self.text.set(buttonText)
def onPress(self, event):
if self.enabled:
self.border.config(highlightbackground=Constant.LightBlue)
def onRelease(self, event):
if self.enabled:
self.border.config(highlightbackground=Constant.LightBlue)
self.button.config(foreground=Constant.LightBlue)
def enable(self):
self.enabled = True
self.button.configure(state=NORMAL)
self.border.configure(highlightbackground=Constant.LightBlue, highlightcolor=Constant.LightBlue)
def disable(self):
self.enabled = False
self.button.configure(state=DISABLED)
self.border.configure(highlightbackground=Constant.Disabled, highlightcolor=Constant.Disabled)
def setClicked(self, isClicked):
self.clicked = isClicked
Here is how I define button and try to disable it:
MyButton = ButtonWidget(self, "Apply", buttonWidth=40, buttonHeight=15)
MyButton.config(state='disabled')
And here is output:
Error:
Traceback (most recent call last):
File "D:\DATA_PYE\python_source_SpectraMon\Main.py", line 20, in <module>
mainWindow = MainWindowView(root)
File "D:\DATA_PYE\python_source_SpectraMon\View\MainWindowView.py", line 44, in __init__
self.createView(parent)
File "D:\DATA_PYE\python_source_SpectraMon\View\MainWindowView.py", line 66, in createView
self.createPages()
File "D:\DATA_PYE\python_source_SpectraMon\View\MainWindowView.py", line 152, in createPages
self.monitorPage = MonitorView(self.contentFrame)
File "D:\DATA_PYE\python_source_SpectraMon\View\MonitorView.py", line 43, in __init__
self.createView()
File "D:\DATA_PYE\python_source_SpectraMon\View\MonitorView.py", line 110, in createView
self.createMonitorFrame()
File "D:\DATA_PYE\python_source_SpectraMon\View\MonitorView.py", line 130, in createMonitorFrame
self.createLoopsStatesFrame()
File "D:\DATA_PYE\python_source_SpectraMon\View\MonitorView.py", line 382, in createLoopsStatesFrame
MyButton.config(state='disabled')
File "C:\Users\user1\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1639, in configure
return self._configure('configure', cnf, kw)
File "C:\Users\user1\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1629, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: unknown option "-state"