【问题标题】:kivy language not handling enums?kivy 语言不处理枚举?
【发布时间】:2017-11-12 09:19:23
【问题描述】:

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

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_consts 模块的“LEFT”属性,而不是枚举?

【问题讨论】:

    标签: python enums kivy-language


    【解决方案1】:

    你导入的是模块,而不是类

    试试这个:

    #: import Ear vocelab.ark_const.Ear
    

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

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2017-09-10
      • 1970-01-01
      相关资源
      最近更新 更多