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