【问题标题】:KivyMD - right/left_action_items causes "weakly-referenced object no longer exists"KivyMD - right/left_action_items 导致“弱引用对象不再存在”
【发布时间】:2020-12-01 22:29:36
【问题描述】:

我正在努力学习 KivyMD,并决定编写一个简单的购物清单应用程序。

我想通过对话窗口将新条目添加到购物清单中。尝试运行以下代码时出现错误:

from kivymd.app import MDApp
from kivymd.uix.list import MDList, IconLeftWidget, OneLineIconListItem
from kivymd.icon_definitions import md_icons
from kivymd.uix.toolbar import MDToolbar
from kivymd.uix.dialog import MDDialog
from kivy.properties import ObjectProperty
from kivymd.uix.boxlayout import BoxLayout
from kivy.uix.scrollview import ScrollView
from kivymd.uix.screen import Screen
from kivymd.uix.button import MDFlatButton
from kivymd.uix.textfield import MDTextFieldRect, MDTextField


class ShoppingListApp(MDApp):

    def build(self):
        screen = Screen()
        scroll = ScrollView()
        toolbar = MDToolbar(title="Shopping List", anchor_title="center")
        toolbar.right_action_items = [['plus', self.dialog_window]]
        screen.add_widget(scroll)
        self.kvmd_list = MDList()
        #self.test_button = MDFlatButton(text="TEST BUTTON", on_press=self.dialog_window)
        #screen.add_widget(self.test_button)
        scroll.add_widget(self.kvmd_list)
        self.theme_cls.theme_style = "Light"
        self.theme_cls.primary_palette = "BlueGray"
        self.theme_cls.primary_hue = '400'
        self.kvmd_list.add_widget(toolbar)

        return screen

    def dialog_window(self, obj):
        self.dialog = MDDialog(
            title="Add new item:",
            buttons=[
                MDFlatButton(
                    text="Add",
                ),
            ],

        )
        self.dialog.set_normal_height()
        self.dialog.open()


ShoppingListApp().run()

我得到的错误是:

弱引用对象不再存在

我把范围缩小到toolbar.right_action_items = [['plus', self.dialog_window]],不管是左还是右都不好。

当我取消注释 self.test.button 时问题消失了。

我不明白为什么会这样。我在这里错过了一些非常基本的东西吗?

谢谢。

【问题讨论】:

    标签: python kivy-language kivymd


    【解决方案1】:

    使用 Kivy kivy 2.0.0rc3 版本。

    【讨论】:

    • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 将 Kivy 版本从稳定版本 (1.11.1) 升级到最新版本 (2.0.0rc3) 确实为我解决了这个问题。谢谢。
    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2020-07-19
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多