我需要从Kivy代码中的<ShareScreen>
访问第34行中声明的LoginScreen().filename
的值。换句话说,filename
有一个图像的路径,我需要在ShareScreen
屏幕上显示该图像。以下是我尝试过的:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
Builder.load_string("""
<LoginScreen>:
GridLayout:
cols: 1
Button:
text: 'Next Screen'
size_hint_y: None
height: '48dp'
on_press: root.next_screen()
<ShareScreen>:
GridLayout:
cols: 1
Image:
source: app.root.login_screen.filename
<RootWidget>:
LoginScreen:
id: login_screen
name: "login_screen"
ShareScreen:
id: share_screen
name: "share_screen"
""")
class LoginScreen(Screen):
def next_screen(self):
self.filename = 'photo.png'
self.manager.current = "share_screen"
class ShareScreen(Screen):
pass
class RootWidget(ScreenManager):
pass
class MainApp(App):
def build(self):
return RootWidget()
MainApp().run()
该代码给了我以下错误:
>> 15: source: app.root.login_screen.filename
16:
17:<RootWidget>:
...
AttributeError: 'NoneType' object has no attribute 'login_screen'
如何获取图像的路径(即filename
值)以在ShareScreen
中显示它
您可以将
ShareScreen
规则更改为:它删除了有问题的
source
,并向Image
添加了一个id
。然后可以将next_screen
方法更改为:它设置
Image
的源相关问题 更多 >
编程相关推荐