我只想将来自 kivy 的 MapView 放在我的应用程序的屏幕中,通过初始菜单上的按钮访问
Posted
技术标签:
【中文标题】我只想将来自 kivy 的 MapView 放在我的应用程序的屏幕中,通过初始菜单上的按钮访问【英文标题】:I just want to put a MapView from kivy inside a screen of my application, being accessed by a button on the initial menu 【发布时间】:2019-11-13 18:07:16 【问题描述】:我有一个带有以下按钮的菜单:
程序化 mapa do fundão 编辑 sair我只是希望当点击按钮时,“mapa do fundão”它会将我带到地图(在这种情况下,请在其他屏幕中打开地图)
我确实做过研究,但它让我很头疼。
我的py和kv文件如下:
main.py 文件
import kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.core.window import Window
from kivy.garden.mapview import MapView
from kivy.lang.builder import Builder
from kivy.base import runTouchApp
bu = Builder.load_file('ence.kv')
class Gerenciador(ScreenManager):
pass
class Menu(Screen):enter code here
pass
class Programacao(Screen):
def __init__(self,**kwargs):
super().__init__(**kwargs)
class MapViewApp(App):
def build(self):
mapview = MapView(zoom=11, lat=50.6394, lon=3.057)
return MapViewApp ().run()
class Ence(App):
def build(self):
return Gerenciador()
Ence().run()
ence.kv - kv 文件
<Gerenciador>
Menu:
name: 'menu'
Programacao:
name: 'programacao'
<Menu>:
BoxLayout:
orientation: 'vertical'
padding:100
spacing:0
Image:
source: "logo.png"
size_hint_y:None
height:200
Button:
text: 'Programação'
on_release:app.root.current = 'programacao'
Button:
text: 'Mapa do Fundão'
on_release:app.root.current = 'map'
Button:
text: 'Editais'
Button:
text: 'Sair'
on_release:app.stop()
<Programacao>
name: 'programacao'
BoxLayout:
orientation: 'vertical'
【问题讨论】:
【参考方案1】:解决办法是去掉class MapViewApp()
,加上下面的class Mapa()
:
片段 - py 文件
class Mapa(Screen):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.add_widget(MapView(zoom=11, lat=50.6394, lon=3.057))
输出
【讨论】:
以上是关于我只想将来自 kivy 的 MapView 放在我的应用程序的屏幕中,通过初始菜单上的按钮访问的主要内容,如果未能解决你的问题,请参考以下文章
我只想将 regex_replace 用于第一个字符(电话号码)
我只想将字符串和 int 输入到某个特定的数组,但我遇到了一些错误