【发布时间】:2013-06-20 22:00:12
【问题描述】:
在导入 Kivy 语言中的类时,我无法分配别名。我关注的文档是here:
从 python 导入一些东西:
#:import name x.y.z
相当于:
from x.y import z as name
我创建了问题的简化版本。 pieces.py 位于包装件内(及其各自的 __init__.py),pieces.kv 位于我的工作文件夹中。
pieces/pieces.py
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
class PieceA(Button):
pass
class PieceB(Button):
pass
class PieceC(GridLayout):
pass
pieces.kv
#:import Boo pieces.pieces.PieceA
#:import Foo pieces.pieces.PieceB
#:import Too pieces.pieces.PieceC
<Boo>:
text: "A"
<Foo>:
text: "B"
<Too>:
rows: 2
Boo:
Foo:
导入如文档中所述,但别名 Boo、Foo 和 Too 不是 被认可。如果我使用类的原始名称而不是别名,还有许多其他版本会出乎意料地起作用:
#:import Boo pieces.pieces
<PieceA>:
text: "A"
<PieceB>:
text: "B"
<PieceC>:
rows: 2
PieceA:
PieceB:
即使我用#:import Boo pieces.pieces 代替#:import Boo pieces.pieces.PieceA。只要我使用类的原始名称,它就会继续工作,但我不能使用别名。 在导入 Kivy 语言的课程时如何使用别名?
我还在这里添加了我的其他 2 个文件以供您测试。
main.py
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.gridlayout import GridLayout
Builder.load_file('pieces.kv')
class Gallery(GridLayout):
pass
class GalleryApp(App):
def build(self):
return Gallery()
GalleryApp().run()
gallery.kv
<Gallery>:
cols: 3
PieceA:
PieceB:
PieceC:
【问题讨论】:
-
指定我使用的是 Kivy v1.7.0 可能很重要,以防这是一个错误。
标签: kivy