Я просто хочу поместить MapView из kivy в экран моего приложения, доступ к которому осуществляется кнопкой в ​​начальном меню - PullRequest
1 голос
/ 03 июля 2019

У меня есть меню со следующими кнопками:

  • programação
  • mapa do fundão
  • editais
  • 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 Ответ

0 голосов
/ 03 июля 2019

Решение состоит в том, чтобы удалить class MapViewApp() и добавить следующее class Mapa():

Snippets - py file

class Mapa(Screen):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.add_widget(MapView(zoom=11, lat=50.6394, lon=3.057))

Вывод

Result - MapView

...