【问题标题】:Kivy mapview - Place button widgets ontop of mapview widgetKivy mapview - 将按钮小部件放在 mapview 小部件的顶部
【发布时间】:2018-04-12 15:22:35
【问题描述】:

我正在尝试将一些小部件添加到这样的 Kivy 地图视图

mapview = self.mapWidget(self.lat, self.lon)        
touchBarbtn1 = Button(text='Unlock')
touchBarbtn1.bind(on_press=lambda x: self.centerOnUser())
mapview.add_widget(touchBarbtn1)

但无论我给它什么布局选项,它总是卡在左下角。即使我添加了更多小部件,它们也只是在左下角相互堆叠。我的目标是在右上角制作一个按钮,使地图以用户为中心。

【问题讨论】:

标签: python kivy


【解决方案1】:
  1. 使用Kivy Anchor Layout
  2. 如果您要添加更多按钮,我的建议是使用Kivy Drop-Down List

示例

main.py

​​>
from kivy.garden.mapview import MapView
from kivy.app import App
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.button import Button
from kivy.properties import NumericProperty


class RootWidget(AnchorLayout):
    lat = NumericProperty(50.6394)
    lon = NumericProperty(3.057)

    def __init__(self, **kwargs):
        super(RootWidget, self).__init__(**kwargs)
        self.anchor_x = 'right'
        self.anchor_y = 'top'
        mapview = MapView(zoom=11, lat=self.lat, lon=self.lon)
        self.add_widget(mapview)
        touchBarbtn1 = Button(text='Unlock', size_hint=(0.1, 0.1))
        touchBarbtn1.bind(on_press=lambda x: self.centerOnUser())
        self.add_widget(touchBarbtn1)

    def centerOnUser(self):
        pass


class MapViewApp(App):
    def build(self):
        return RootWidget()


MapViewApp().run()

输出

【讨论】:

  • 不客气。请记住将您的问题标记为已回答,方法是单击解决了您的问题的答案左侧的绿色勾边复选标记。这将答案标记为“已接受”,并通过扩展将问题标记为“已接受答案”。谢谢。
猜你喜欢
  • 2015-02-21
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
相关资源
最近更新 更多