【发布时间】:2021-08-21 23:42:29
【问题描述】:
我在 Kivy 中创建了一个简单的应用程序。当我调试和部署应用程序时,一切都很好,没有错误,但是当我在手机上下载文件并打开它时。没发生什么事。 https://github.com/r0me777/AnimalNoisesApp.gitGithub 请帮忙。
Python 文件:
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.stacklayout import StackLayout
from kivy.uix.gridlayout import GridLayout
from kivy.metrics import dp
from kivy.core.audio import SoundLoader
class AppLayout(GridLayout):
def play_music(self, MusicName):
music = SoundLoader.load(MusicName)
if music:
music.play()
class ButtonApp(App):
pass
if __name__ == "__main__":
ButtonApp().run()
Kv 文件:
AppLayout:
<AppLayout>:
cols:2
rows:2
Label:
text: "Press the Animals!!"
size: self.texture_size
GridLayout:
cols: 1
Button:
id: Bee
background_normal: "bee.png"
on_release: root.play_music("BeeNoise.mp3")
Button:
id: Bird
background_normal: "bird.png"
on_release: root.play_music("BirdNoise.mp3")
# Button:
# background_normal: "cow.png"
# on_release: root.play_music("BeeNoise.mp3")
# Button:
# background_normal: "dog.png"
# on_release: root.play_music("BeeNoise.mp3")
GridLayout:
cols: 1
Button:
id: Elephant
background_normal: "elephant.png"
on_release: root.play_music("ElephantNoise.mp3")
Button:
id: Frog
background_normal: "frog.png"
on_release: root.play_music("FrogNoise.mp3")
# Button:
# background_normal: "horse.png"
# on_release: root.play_music("BeeNoise.mp3")
# Button:
# background_normal: "koala.png"
# on_release: root.play_music("BeeNoise.mp3")
GridLayout:
cols: 1
Button:
id: Lion
background_normal: "lion.png"
on_release: root.play_music("LionNoise.mp3")
Button:
id: Seal
background_normal: "walrus.png"
on_release: root.play_music("SealNoise.mp3")
# Button:
# background_normal: "bird.png"
# on_release: root.play_music("BeeNoise.mp3")
# Button:
# background_normal: "bird.png"
# on_release: root.play_music("BeeNoise.mp3")
都很简单,当我推土机时没有错误。我不知道是什么原因造成的。
【问题讨论】:
-
也许你忘了
ButtonApp class中的def build(self): return AppLayout()? -
Button.kv应命名为button.kv(小写)。 -
奇怪,我在电脑上运行它的时候把它大写了,没有问题,我会改变它。我很欣赏这个建议。 @约翰安德森
-
也许吧,但我没有使用过那个构建(self),它在我的电脑上仍然可以正常工作,但我会尝试一下。感谢@PaulLam 的建议
-
我认为从 button.kv 更改 Button.kv 有效,它现在显示在我的屏幕上。有些东西不像音频那样工作,但更近了一步,谢谢约翰! @约翰安德森
标签: python android kivy kivy-language