[英]How to use button behavior with screenmanager without .kv file in kivy
I need help on how to use kivy 'button behavior' with screen manager without any.kv file.我需要有关如何在没有任何.kv 文件的情况下将 kivy 的“按钮行为”与屏幕管理器一起使用的帮助。 I have tried but am getting errors.我已经尝试过,但出现错误。
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),
pos_hint={'center_x': .5, '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()
I know I can do this with button widget but I want to use image and make it use button behavior.我知道我可以使用按钮小部件来做到这一点,但我想使用图像并使其使用按钮行为。 Making the image clickable.使图像可点击。
Make a class ImageButton
制作一个 class ImageButton
from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.image import Image
class ImageButton(ButtonBehavior, Image):
pass
Now you can use ImageButton(source="some/path", on_press=some_function())
in any Layout or App现在您可以在任何布局或应用程序中使用ImageButton(source="some/path", on_press=some_function())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.