在我的 kivy 应用程序中加载纹理图集时出错
Error while loading texture atlas in my kivy application
我无法打开我使用 kivy pillow 编译的图集中的单个精灵。我一直在 python 解释器中得到 'Error loading texture'。我是 kivy 的新手,所以我最大的倾向是我的文件结构或我如何通过字符串引用。关于如何在包含 main.py 和 main.kv 的文件夹中构造图集文件以及它如何与 kv 文件中的图集字符串相关的文档很少。
我尝试在包含 main.py 和 main.kv 的文件夹中创建一个新文件夹,并将其命名为 textures。
数据结构如下所示
C:\Users\User\Desktop\Main\textures\myatlas-0.png, myatlas.atlas
Main.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import StringProperty, ObjectProperty
from kivy.uix.image import Image
from kivy.uix.widget import Widget
class Sprite(Widget):
pass
class MainApp(App):
def build(self):
self.load_kv('sprite.kv')
return Sprite()
if __name__ == "__main__":
app = MainApp()
app.run()
sprite.kv
<sprite.kv>
GridLayout:
cols:1
rows:1
size: root.width * .8, root.height * .125
center: root.width/2, root.height /1.1
Image:
id: note1
source: 'atlas://textures/myatlas-0/myatlas/N000'
size_hint: .5, 1
执行时,kivy 应用程序中会出现空白的白框,python 解释器中会出现 'Error loading texture'
所以我认为你必须包括带有页码的图集,并在引用的精灵之前再次指定图集名称。所以这是一个简单的修复,我觉得很愚蠢。但对于理解格式有一点困难的人来说,这是正确的源字符串。
GridLayout:
cols:1
rows:1
size: root.width * .8, root.height * .125
center: root.width/2, root.height /1.1
Image:
id: note1
source: 'atlas://textures/myatlas/N000'
我无法打开我使用 kivy pillow 编译的图集中的单个精灵。我一直在 python 解释器中得到 'Error loading texture'。我是 kivy 的新手,所以我最大的倾向是我的文件结构或我如何通过字符串引用。关于如何在包含 main.py 和 main.kv 的文件夹中构造图集文件以及它如何与 kv 文件中的图集字符串相关的文档很少。
我尝试在包含 main.py 和 main.kv 的文件夹中创建一个新文件夹,并将其命名为 textures。
数据结构如下所示
C:\Users\User\Desktop\Main\textures\myatlas-0.png, myatlas.atlas
Main.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import StringProperty, ObjectProperty
from kivy.uix.image import Image
from kivy.uix.widget import Widget
class Sprite(Widget):
pass
class MainApp(App):
def build(self):
self.load_kv('sprite.kv')
return Sprite()
if __name__ == "__main__":
app = MainApp()
app.run()
sprite.kv
<sprite.kv>
GridLayout:
cols:1
rows:1
size: root.width * .8, root.height * .125
center: root.width/2, root.height /1.1
Image:
id: note1
source: 'atlas://textures/myatlas-0/myatlas/N000'
size_hint: .5, 1
执行时,kivy 应用程序中会出现空白的白框,python 解释器中会出现 'Error loading texture'
所以我认为你必须包括带有页码的图集,并在引用的精灵之前再次指定图集名称。所以这是一个简单的修复,我觉得很愚蠢。但对于理解格式有一点困难的人来说,这是正确的源字符串。
GridLayout:
cols:1
rows:1
size: root.width * .8, root.height * .125
center: root.width/2, root.height /1.1
Image:
id: note1
source: 'atlas://textures/myatlas/N000'