【发布时间】:2020-04-05 14:06:35
【问题描述】:
我正在尝试使用 Python 和 Kivy 制作纸牌游戏,但无法显示纸牌。到目前为止,ChaseTheAce.deal 随机选择一张牌并将其从牌组中移除。我不知道如何将字符串从卡片字典传递到 KV 文件中的图像。我是 Kivy 的新手,在 ID 以及哪些信息与 PY 文件中的信息匹配时遇到了问题。任何帮助表示赞赏,谢谢!
PY 文件
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.image import Image
from kivy.uix.widget import Widget
from kivy.properties import StringProperty
import random
import numpy as np
cards = ['ace_spades', 'king_spades']
dict = {'ace_spades':'ace_of_spades.png', 'king_spades':'king_of_spades2.png'}
class LoginScreen(Screen):
pass
class GameScreen(Screen):
pass
class ScoreScreen(Screen):
pass
class WindowManager(ScreenManager):
pass
class ChaseTheAce(App):
cardimagefile = StringProperty()
def deal(self):
mycard = random.choice(cards)
cards.remove(mycard)
cardimagefile = (dict[mycard])
def build(self):
return kv
kv = Builder.load_file("cta1.kv")
if __name__ == "__main__":
ChaseTheAce().run()
KV 文件
<GameScreen>:
ChaseTheAce:ChaseTheAce
name: "GameScreen"
GridLayout:
rows: 3
Image:
id: cardimage
source: ChaseTheAce.cardimagefile #<<<<<<<<<<<<<<<<<<<
allow_stretch: True
GridLayout:
dealer:deal
cols: 3
Button:
id: deal
text: "Deal"
on_release:
app.deal()
编辑删除不相关的代码部分。
【问题讨论】:
-
我删除了与图片问题无关的所有内容。