以前,我使用obj.texture
引用成功地将png文件的字节集成到kivy图像中。我目前正试图用chess.svg
字符串来实现这一点,但没有太大的成功。MWE如下:
# dependencies
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.image import Image as UIXImage
from kivy.uix.behaviors.button import ButtonBehavior
from kivy.properties import StringProperty
import chess
import chess.svg
# chess-related vars
myimg = str( chess.svg.board( board=chess.Board() ) ) #svg code
# custom chess-board obj
class ChessBoard(ButtonBehavior, UIXImage):
boardimg = StringProperty('')
def __init__(self,boardimg,**kwargs):
super(ChessBoard,self).__init__(**kwargs)
self.boardimg = boardimg
self.render()
def render(self,*args):
print(self.boardimg) # TODO manipulate myimg into a texture-rippable obj
# self.texture = myimg.texture
pass
# build the app
class MyApp(App):
def build(self):
return ChessBoard(myimg)
if __name__ == '__main__':
MyApp().run()
任何关于如何使这项工作的见解都将受到极大的赞赏,因为这似乎是我们集体社区知识的一个空白(例如,见:Display chess board from svg file in kivy python)。我对这段代码的一个设计目标是在不必在本地保存任何图像文件的情况下完成整个集成,这样就排除了kivy的SvgWidget
,除非有方法在不引用文件的情况下使用它
目前没有回答
相关问题 更多 >
编程相关推荐