- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我去了MapView-Doncumentation以及Source code但这似乎没有多大帮助。
我在kv文件中创建了这个模板,以便我可以在 map 中动态创建一个mapmarkerpopup,但是当我尝试这个时,它会创建另一个小部件(这很明显,因为我在load_content方法中做了add_widget,因为我找不到任何其他方式)
这是map_data.kv文件
#:import MapSource kivy.garden.mapview.MapSource
#:import MapMarkerPopup kivy.garden.mapview.MapMarkerPopup
[MakePopup@BoxLayout]:
MapMarkerPopup:
lat: ctx.lat
lon: ctx.lon
popup_size: 400,400
Bubble:
Image:
source: ctx.image
mipmap: True
Label:
text: ctx.label
markup: True
halign: "center"
<Toolbar@BoxLayout>:
size_hint_y: None
height: '48dp'
padding: '4dp'
spacing: '4dp'
canvas:
Color:
rgba: .2, .2, .2, .6
Rectangle:
pos: self.pos
size: self.size
<Map_Data>:
Toolbar:
top: root.top
#Spinner created to select places.
Spinner:
text: "Sydney"
values: root.map_values.keys()
on_text:
if (self.text == 'France'): root.load_content()
else: pass
MapView:
id: mapview
lat: 28.89335172
lon: 76.59449171
zoom: 24
这是main.py文件
class Map_Data(BoxLayout):
....
def load_content(self):
self.add_widget(Builder.template('MakePopup', lat ='28.89335152',
lon='76.59449153', image="goku.jpg",label='label'))
这是我从上面的代码中得到的输出。 我希望在 map 上显示该标记。
现在我们看到mapview有一个函数“add_marker”,但是通过这个方法我无法添加图像和标签。
if (self.text == 'Sydney'):
mapview.add_marker(MapMarkerPopup(lat=-33.8670512,lon=151.206))
else: pass
它工作得很好,并在 map 上添加了标记。
但是如何添加图像和标签,即。内容???
mapview.add_marker(MapMarkerPopup(lat=-33.8670512,lon=151.206, content=???))
现在可以通过手动创建来生成预期结果,如https://github.com/kivy-garden/garden.mapview/blob/master/examples/map_with_marker_popup.py
但是动态创建它怎么样???如有任何帮助,我们将不胜感激。
编辑1:
我也尝试过这样做。
if (self.text == 'Sydney'): mapview.add_marker(MapMarkerPopup(lat=-33.8670512,
lon=151.206,popup_size=(400,400)).add_widget(Button(text = "stackoverflow")))
else: pass
但它显示此错误:
marker._layer = self
AttributeError: 'NoneType' object has no attribute '_layer'
最佳答案
自从你问这个问题以来已经有一段时间了,但我最近遇到了同样的问题,也许有人对答案感兴趣。您在其他地方指出了如何动态添加内容( https://github.com/kivy-garden/garden.mapview/issues/5 ),但弹出窗口显示在错误位置的问题仍然存在,您建议需要更改 set_marker_position
方法。将其更改为
def set_marker_position(self, mapview, marker):
x, y = mapview.get_window_xy_from(marker.lat, marker.lon, mapview.zoom)
marker.x = int(x - marker.width * marker.anchor_x)
marker.y = int(y - marker.height * marker.anchor_y)
if isinstance(marker, MapMarkerPopup):
marker.placeholder.x = marker.x - marker.width / 2
marker.placeholder.y = marker.y + marker.height
即添加最后三行对我来说很有效。
关于python - 在 kivy-Garden-Mapview 的 python 端(不在 kv 文件中)的 MapMarkerPopup 中创建 Popup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30862740/
完美的功能代码: from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import S
我尝试使用 kv_t 存储一些数据但没有成功。我也尝试过例子forum.c & kv.c。当尝试创建第二个论坛线程时,forum.c 挂起,而 kv.c 崩溃。 当我向 kv 添加 1 个项目时,kv
my %hash = two => 2, three => 3, one => 1, ; for %hash.sort(*.key)>>.kv -> ($key, $v
我正在尝试输出同一个键的 SUM 和 COUNT 。例如。给定一个包含数百万个飞机延误事件的 .csv。使用 Apache Beam (Java),我想对每架飞机的延误持续时间进行求和,并计算每架飞机
我在 Consul 上存储了这些 KV 源: config/books/ config/common/ 在我的 Spring Boot 应用程序 application.yml 中,我将其配置如下:
所以我只是使用一些示例 Kivy 文件代码,我遇到了这段允许用户在屏幕之间切换的代码: from kivy.app import App from kivy.lang import Builder f
我一辈子都想不出如何通过 KV 文件在自定义小部件上传递自定义属性。我的应用程序是一个包含 Button() 和 TestWidget() 的简单网格。 TestWidget() 有一个 String
我希望在 Kivy 中使用 SVG,但我更喜欢在 kv 文件中使用,而不是在 py 程序中。但是,当我尝试诸如 Widget: canvas.before: Svg:
我想提取网址查询参数,并且按照this forum answer的要求,我可以使用kv {} 但我想了解这是如何工作的。 这是我的字符串:param1=val1¶m2=val2&adv=val
我的 Kivy 语言文件有许多 font_size 属性,所有属性都具有相同的值,是否可以在 KV lang 中分配变量? 当前 KV 文件示例: #User ID Label:
我有一个应用程序,其固定标题中带有三个切换按钮,该标题是屏幕管理器的外部缩进布局。初始化时,导入屏幕必须显示,即 self.ids.scrn_man.current = 'import_scn",按下
我遇到了与本主题 kv incorrect 中所述相同的问题.当我使用 Builder 并加载 kv 文件时,我有正常工作的应用程序。但是当我尝试使用自动加载 kv 文件时,我只有黑屏。有人可以向我解
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在尝试将我的小部件创建转移到 .kv 而不是我的 main.py。我怎样才能仍然引用我的 on_press 命令? painter 是另一个子部件,包含我想调用的函数,但是我不确定如何从 .kv
一直在查看文档,但找不到如何在 kv 中正确屏蔽图像。这是我的 kv 代码: : source: 'http://webserver/120x100.png' canvas.befor
我有我的 python 代码: from kivy.app import App from kivy.uix.scatter import Scatter from kivy.uix.label im
我似乎无法为一个简单的应用程序设置背景图像。我是 kivy 的新手,对 python 有点陌生。这看起来很简单,但我发现所有示例都在 .py 文件中使用 kv 语言,而不是我想学习如何使用的 .kv
我的程序的一部分涉及用户输入自己的文本。我想要一个标签更改为输入的值,该值将存储在全局变量中。 基本上发生了什么 chosen = StringProperty() : BoxLayout:
我正在学习编写 Kivy 应用程序。我创建了一个由两个网格布局组成的玩具应用程序。一个包含两个按钮,另一个包含两个标签。任务是在单击按钮时修改标签。当所有布局都在同一个 .kv 文件中时,我可以通过简
我注意到我在网上找到的大多数示例都没有外部 .kv 文件。他们在内部定义所有实例。然而他们也说拥有外部 .kv 文件是一个很好的做法。做什么比较好?如果拥有外部 .kv 文件更好,那么我应该如何使用使
我是一名优秀的程序员,十分优秀!