如何解决如何在不带有.kv文件的screenmanager中使用按钮行为
我需要有关如何在没有任何.kv文件的情况下通过屏幕管理器使用kivy“按钮行为”的帮助。我已经尝试过,但是遇到错误。
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.button import Buttonbehavior
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager,Screen,FadeTransition
class ScreenManagement(ScreenManager):
def __init__(self,**kwargs):
super(ScreenManagement,self).__init__(**kwargs)
class Screen2(Screen):
def __init__(self,**kwargs):
super(Screen2,self).__init__(**kwargs)
Pass
class Screen1(Screen,ButtonBehavior,Image):
def __init__(self,**kwargs):
super(Screen1,self).__init__(**kwargs)
self.welc = Label(text='hi there welcome to my first screen',font_size=15,size_hint=(.26,.26),pos_hint={'center_x': .5,'center_y': .7})
self.add_widget(self.welc)
#This is where I want the image to have buttonbehaviour and be clickable
self.goto= ImageButton(source='put_any.png',size_hint=(.3,.2),'center_y': .32},on_press=(source='put_any.png'),on_release=(source='put_any.png'))
self.add_widget(self.goto)
class Application(App):
def build(self):
sm = ScreenManagement(transition=FadeTransition())
sm.add_widget(Screen1(name='screen1'))
sm.add_widget(Screen2(name='screen2'))
return sm
if __name__ == "__main__":
Application().run()
我知道我可以使用按钮小部件来做到这一点,但是我想使用图像并使它使用按钮行为。使图像可点击。
解决方法
上课 ImageButton
from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.image import Image
class ImageButton(ButtonBehavior,Image):
pass
现在,您可以在任何布局或应用中使用ImageButton(source="some/path",on_press=some_function())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。