kivymd / KivyMD

KivyMD is a collection of Material Design compliant widgets for use with Kivy, a framework for cross-platform, touch-enabled graphical applications. https://youtube.com/c/KivyMD https://twitter.com/KivyMD https://habr.com/ru/users/kivymd https://stackoverflow.com/tags/kivymd
https://kivymd.readthedocs.io
MIT License
2.21k stars 665 forks source link

'ThemeManager' object has no attribute 'primary_dark' #1622

Open akoslaczko opened 7 months ago

akoslaczko commented 7 months ago

Description of the Bug

When you try to use the MDToggleButton mixin class the code breaks with the titular AttributeError. The example code in the documentation breaks as well:

Code and Logs

from kivy.lang import Builder

from kivymd.app import MDApp
from kivymd.uix.behaviors.toggle_behavior import MDToggleButton
from kivymd.uix.button import MDButton

KV = '''
MDScreen:

    MDBoxLayout:
        adaptive_size: True
        spacing: "12dp"
        pos_hint: {"center_x": .5, "center_y": .5}

        MyToggleButton:
            text: "Show ads"
            group: "x"

        MyToggleButton:
            text: "Do not show ads"
            group: "x"

        MyToggleButton:
            text: "Does not matter"
            group: "x"
'''

class MyToggleButton(MDButton, MDToggleButton):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.background_down = self.theme_cls.primary_color

class Test(MDApp):
    def build(self):
        self.theme_cls.theme_style = "Dark"
        self.theme_cls.primary_palette = "Orange"
        return Builder.load_string(KV)

Test().run()
 Traceback (most recent call last):
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivy/lang/builder.py", line 412, in load_string
     self._apply_rule(
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivy/lang/builder.py", line 667, in _apply_rule
     self._apply_rule(
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivy/lang/builder.py", line 663, in _apply_rule
     child = cls(__no_builder=True)
   File "/home/akkus/DEV/Projects/material-chess-clock/test.py", line 31, in __init__
     super().__init__(*args, **kwargs)
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivymd/uix/button/button.py", line 949, in __init__
     super().__init__(*args, **kwargs)
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivymd/uix/behaviors/declarative_behavior.py", line 312, in __init__
     super().__init__(**kwargs)
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivymd/uix/behaviors/backgroundcolor_behavior.py", line 164, in __init__
     super().__init__(**kwarg)
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivymd/uix/behaviors/toggle_behavior.py", line 248, in __init__
     super().__init__(**kwargs)
   File "/home/akkus/DEV/Projects/material-chess-clock/venv/lib/python3.10/site-packages/kivymd/uix/behaviors/toggle_behavior.py", line 205, in __init__
     self.theme_cls.primary_dark
 AttributeError: 'ThemeManager' object has no attribute 'primary_dark'

Versions

ikus060 commented 6 months ago

Seams to be a duplicate of #1605

robertpro commented 4 weeks ago

Seams to be a duplicate of #1605

Looks like it is duplicated, but #1605 is closed and bug is still present.