Python 无法在Kivy中切换屏幕
所以我刚开始使用Kivy创建一个简单的应用程序。 我有两个屏幕(主屏幕和寄存器)。但是,我无法将屏幕从主屏幕切换到寄存器。也没有错误代码,所以我不确定出了什么问题 Python代码Python 无法在Kivy中切换屏幕,python,kivy,Python,Kivy,所以我刚开始使用Kivy创建一个简单的应用程序。 我有两个屏幕(主屏幕和寄存器)。但是,我无法将屏幕从主屏幕切换到寄存器。也没有错误代码,所以我不确定出了什么问题 Python代码 from kivy.app import App from kivy.properties import ObjectProperty from kivy.graphics import Rectangle, Color, Line from kivy.uix.floatlayout import FloatLayo
from kivy.app import App
from kivy.properties import ObjectProperty
from kivy.graphics import Rectangle, Color, Line
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.screenmanager import Screen,ScreenManager
class Main(Screen):
def btn_tambah_data(self):
print("Add Data")
def btn_edit_data(self):
print("Edit Data")
def btn_lihat_data(self):
print("See Data")
class Register(Screen):
pass
class WindowManager(ScreenManager):
pass
class Kosless(App):
def build(self):
return Main()
if __name__ == "__main__":
Kosless().run()
Kv代码(对不起,如果我的代码有点乱)
WindowManager:
主要内容:
登记册:
:
名称:“主要”
浮动布局:
画布:
颜色:
rgba:.62、.91、.968,1
矩形:
pos:self.pos
大小:self.size
颜色:
rgba:1,984,58,1
矩形:
尺寸:自宽、自高/25
pos:self.pos
标签:
文本:“无科”
字体大小:30
颜色:1.984.58
pos_提示:{“y”:0.4}
黑体字:对
按钮:
文本:“添加数据”
pos_提示:{“y”:0.55,“x”:0.25}
尺寸提示:0.5,0.1
背景颜色:0.1,0.5,0.6,1
按:app.root.current:“注册”##我想这里出了点问题
按钮:
文本:“编辑数据”
尺寸提示:0.5,0.1
pos_提示:{“y”:0.40,“x”:0.25}
背景颜色:0.1,0.5,0.6,1
按:root.btn\u编辑\u数据()
按钮:
正文:“见数据”
尺寸提示:0.5,0.1
pos_提示:{“y”:0.25,“x”:0.25}
背景颜色:0.1,0.5,0.6,1
按:root.btn\u lihat\u data()
:
姓名:“注册”
按钮:
文本:“测试”
这是主屏幕,理论上,如果我点击“添加数据”按钮,注册屏幕将显示出来。但是什么也没发生。。。
我该怎么办?
你们有什么建议吗?
谢谢你阅读我的帖子,祝你有美好的一天 您的代码有两个问题。首先,为了切换屏幕,您需要一个
ScreenManager
,但是您的app.root
是一个Screen
(Main
)。您可以将build()
方法更改为:
class Kosless(App):
def build(self):
return Builder.load_file('kv_file_name')
而添加数据按钮的on_press
属性应为:
Button:
text:"Add Data"
pos_hint:{"y":0.55,"x":0.25}
size_hint: 0.5 ,0.1
background_color:0.1, 0.5, 0.6, 1
on_press : app.root.current="Register" # changed `:` to `=`
Button:
text:"Add Data"
pos_hint:{"y":0.55,"x":0.25}
size_hint: 0.5 ,0.1
background_color:0.1, 0.5, 0.6, 1
on_press : app.root.current="Register" # changed `:` to `=`