将Screen Manager窗口小部件与MapView集成

问题描述 投票:0回答:1

应用概念

我正在尝试创建一个在初始阶段将由2个窗口组成的应用程序。

第一个窗口LoginScreen)是一个登录窗口,带有一个按钮,单击该按钮会将您带到第二个窗口。

第二个窗口MapScreen)应该使用MapView小部件显示地图。

问题描述

启动应用程序后,LoginScreen可以正常工作。

仅移动到MapScreen之后小部件。

This is how it looks like.

代码

main.py

from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import Screen class LoginScreen(Screen): pass class MapScreen(Screen): pass GUI = Builder.load_file("main.kv") class MainApp(App): def build(self): return GUI def change_screen(self, screen_name): screen_manager = self.root.ids['screen_manager'] # screen_manager.transition = WipeTransition() screen_manager.current = screen_name MainApp().run()

main.kv

#:include loginscreen.kv #:include mapscreen.kv GridLayout: cols: 1 ScreenManager: id: screen_manager LoginScreen: name: "login_screen" id: login_screen MapScreen: name: "map_screen" id: map_screen

loginscreen.kv

<LoginScreen>: Button: text: "Go to MapScreen" on_press: app.change_screen("map_screen")

mapscreen.kv

#:import MapView kivy.garden.mapview.MapView <MapScreen@MapView>: lat: 52 lon: 21 zoom: 10 double_tap_zoom: True on_lat: print(self.lat) on_lon: print(self.lon) MapMarkerPopup: lat: 52 lon: 21 Button: on_release: root.center_on(52,21) print(root.get_bbox())
问题

有人知道我在哪里犯了错误以及如何纠正它?

python kivy kivy-language
1个回答
0
投票
解决方案
© www.soinside.com 2019 - 2024. All rights reserved.