kivy语言不处理枚举?

2024-05-23 19:14:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含常量的文件,如下所示:

from enum import Enum
class Ear(Enum):
    LEFT = 0
    RIGHT = 1

然后我将它导入一个kv文件,如下所示:

#: import Ear vocelab.ark_const

最后用它来设置一个名为“ear”的ObjectProperty:

Audiogram:
    id: audiogram
    ear: Ear.LEFT

然后我得到这个错误(回溯很长,这只是其中的一部分):

kivy.lang.builder.BuilderException: Parser: File "C:\Users\Laci\Python\Projects\VoceLab\vocelab\vocelab.kv", line 224:
 ...
     222:                            Audiogram:
     223:                                id: audiogram
 >>  224:                                ear: Ear.LEFT
     225:                    TabbedPanelItem:
     226:                        id: tp_devices
 ...
 BuilderException: Parser: File "C:\Users\Laci\Python\Projects\VoceLab\vocelab\vocelab.kv", line 224:
 ...
     222:                            Audiogram:
     223:                                id: audiogram
 >>  224:                                ear: Ear.LEFT
     225:                    TabbedPanelItem:
     226:                        id: tp_devices
 ...
 AttributeError: 'module' object has no attribute 'LEFT'

我认为这可能是一个错误,或至少是错误的消息,如果错误的。它表示“AttributeError:'module'对象没有属性'LEFT'”,但“Ear”不是模块。我不确定这一点,但也许kivy试图获得ark\u consts模块的“LEFT”属性,而不是enum?你知道吗


Tags: 文件importid错误enumleftarkkv
1条回答
网友
1楼 · 发布于 2024-05-23 19:14:25

您已经导入了模块,而不是类

试试这个:

#: import Ear vocelab.ark_const.Ear

下一个import是你给你导入的东西起的名字,你导入的是最后一个

相关问题 更多 >