Python 3.x 如何在Python Kivy中通过调用方法更改屏幕
我是kivy的新手,我想通过点击图片来改变我的屏幕。我使用了ButtonBevior并调用了我的类ImageButton的on_press方法,但我不知道该放什么代码。我试着在我的kivy文件上按:screen\u manager.current='window1',但不起作用 Python代码Python 3.x 如何在Python Kivy中通过调用方法更改屏幕,python-3.x,kivy-language,Python 3.x,Kivy Language,我是kivy的新手,我想通过点击图片来改变我的屏幕。我使用了ButtonBevior并调用了我的类ImageButton的on_press方法,但我不知道该放什么代码。我试着在我的kivy文件上按:screen\u manager.current='window1',但不起作用 Python代码 from kivy.app import App from kivy.uix.screenmanager import ScreenManager, Screen from kivy.uix.float
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.uix.behaviors import ButtonBehavior
class Window1(Screen):
pass
class Window2(Screen):
pass
class WindowManager(ScreenManager):
pass
class ImageButton(ButtonBehavior, Image):
def on_press(self):
# what to call
class Phone(FloatLayout):
pass
class MyApp(App):
def build(self):
return Phone()
if __name__ == '__main__':
MyApp().run()
<Phone>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
WindowManager:
id: screen_manager
size_hint: 1, 0.9
anchor_y: 'top'
transition: FadeTransition()
Window1:
Window2:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'bottom'
BoxLayout:
canvas:
Color:
rgba: 228, 241, 254, 1
Rectangle:
size: self.size
orientation: 'horizontal'
size_hint: 1, .1
ImageButton:
source: 'pic1.png'
on_press: self.on_press()
ImageButton:
source: 'pic2.png'
on_press: self.on_press()
<Window1>:
name: 'window1'
Label:
text: 'Window1'
<Window2>:
name: 'window2'
Label:
text: 'Window2'
kv文件
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.uix.behaviors import ButtonBehavior
class Window1(Screen):
pass
class Window2(Screen):
pass
class WindowManager(ScreenManager):
pass
class ImageButton(ButtonBehavior, Image):
def on_press(self):
# what to call
class Phone(FloatLayout):
pass
class MyApp(App):
def build(self):
return Phone()
if __name__ == '__main__':
MyApp().run()
<Phone>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
WindowManager:
id: screen_manager
size_hint: 1, 0.9
anchor_y: 'top'
transition: FadeTransition()
Window1:
Window2:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'bottom'
BoxLayout:
canvas:
Color:
rgba: 228, 241, 254, 1
Rectangle:
size: self.size
orientation: 'horizontal'
size_hint: 1, .1
ImageButton:
source: 'pic1.png'
on_press: self.on_press()
ImageButton:
source: 'pic2.png'
on_press: self.on_press()
<Window1>:
name: 'window1'
Label:
text: 'Window1'
<Window2>:
name: 'window2'
Label:
text: 'Window2'
:
主持人安排:
主播:中锋
主播:托普
WindowManager:
id:屏幕管理器
尺寸提示:1,0.9
主播:托普
转换:FadeTransition()
窗口1:
窗口2:
主持人安排:
主播:中锋
主播:“底部”
盒子布局:
画布:
颜色:
rgba:228241254,1
矩形:
大小:self.size
方向:“水平”
大小提示:1、.1
图像按钮:
资料来源:“pic1.png”
on_press:self.on_press()
图像按钮:
资料来源:“pic2.png”
on_press:self.on_press()
:
名称:“window1”
标签:
文本:“Window1”
:
名称:“window2”
标签:
文本:“Window2”
有人在这方面帮我。。我缺少的是我的kv文件我应该放进去
按:app.root.ids.\u screen\u manager.current='window1'
这是解释
解析kv代码时,id字段进入名为ids的dict,该dict存储指向小部件对象的指针
每个kivy规则都有一个用于ID的专用名称空间
细分:
app.root.ids.screen\u管理器
应用程序是你的应用程序
root是根部件,Phone
ids是在根级别定义的id的dict
埃利奥特·加布斯的功劳有人帮我。。我缺少的是我的kv文件我应该放进去 按:app.root.ids.\u screen\u manager.current='window1' 这是解释 解析kv代码时,id字段进入名为ids的dict,该dict存储指向小部件对象的指针 每个kivy规则都有一个用于ID的专用名称空间 细分: app.root.ids.screen\u管理器 应用程序是你的应用程序 root是根部件,Phone ids是在根级别定义的id的dict 艾略特·加布斯的功劳