0
继访问属性是main.py:如何千伏从python脚本中kivy
from kivy.app import App
from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.image import Image
from kivy.uix.screenmanager import (ScreenManager, Screen)
from kivy.uix.button import Button
from kivy.properties import *
class EmotionsScreen(Screen):
def button_press(self, emotion_str):
print (self.ids[emotion_str].emotion)
class ScreenManagement(ScreenManager):
pass
class HappyButton(ButtonBehavior, Image):
def on_press(self):
print(self.emotion)
class SadButton(ButtonBehavior, Image):
def on_press(self):
print(self.emotion)
class TiredButton(ButtonBehavior, Image):
def on_press(self):
print(self.emotion)
class MyApp(App):
def build(self):
sm = ScreenManagement()
sm.current = 'Emotions'
return sm
if __name__=='__main__':
MyApp().run()
以下是myapp.kv文件的内容: : EmotionsScreen:
<EmotionsScreen>:
name:'Emotions'
HappyButton:
id: happy
source: "happy.png"
pos: (-200, 100)
emotion: "Happy"
SadButton:
id: sad
source: "sad.png"
pos: (0, 100)
emotion: "Sad"
TiredButton:
id: tired
source: "tired.png"
pos: (200, 100)
emotion: "Tired"
在运行应用程序并单击这三个按钮时,我得到以下行为:
- 点击快乐按钮打印“悲伤” :)
- 点击按钮伤心打印“累”
- 点击按钮累打印“累”
上述情况发生,即使我把一个回调(内的应用程序,以提供的参数),如下所示:
main.py:
from kivy.app import App
from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.image import Image
from kivy.uix.screenmanager import (ScreenManager, Screen)
from kivy.uix.button import Button
from kivy.properties import *
class EmotionsScreen(Screen):
pass
class ScreenManagement(ScreenManager):
pass
class ImageButton(ButtonBehavior, Image):
pass
class MyApp(App):
def build(self):
sm = ScreenManagement()
sm.current = 'Emotions'
return sm
def button_press(self, *args):
print (args)
if __name__=='__main__':
MyApp().run()
myapp.kv:
<ScreenManagement>:
EmotionsScreen:
<EmotionsScreen>:
name:'Emotions'
ImageButton:
source: "happy.png"
pos: (-200, 100)
on_press: app.button_press("Happy")
ImageButton:
source: "sad.png"
pos: (0, 100)
on_press: app.button_press("Sad")
ImageButton:
source: "tired.png"
pos: (200, 100)
on_press: app.button_press("Tired")
我希望它分别点击三个按钮后打印出“快乐”,“悲伤”和“疲倦”。我可以知道我哪里出了问题吗?
非常感谢。有效!我有不到15分,所以我不能投你的答案 – user3308983