如何用绝对坐标定位 Kivy Popup?

Posted

技术标签:

【中文标题】如何用绝对坐标定位 Kivy Popup?【英文标题】:How to position Kivy Popup with absolute coordinate? 【发布时间】:2016-04-24 07:28:05 【问题描述】:

如何禁用 Kivy Popup 对象的相对位置?例如,对于这个例子,你如何定义绝对的pos?:

from kivy.uix.popup import Popup
from kivy.uix.label import Label
popup = Popup(title='Test popup', content=Label(text='Hello world'),
              size_hint=(None, None), 
              #pos_hint=None, pos_hint=(None, None), pos_hint=, 
              size=(200,200), pos=(10, 10))
popup.open()

注意,如果 pos_hint 尝试未注释,它会失败,因为 pos_hint 不能为空,不能是元组,或者根本没有效果(弹出窗口始终垂直和水平居中)。另请注意,自定义尺寸确实有效。

【问题讨论】:

【参考方案1】:

既然 pos_hint 效果很好,你总是可以这样做:(“10.0”是绝对坐标)

    popup = Popup(title='Test popup', content=Label(text='Hello world'),
                  size_hint=(None, None), 
                  pos_hint='x': 10.0 / Window.width, 
                            'y':10.0 /  Window.height,  
                  size=(200,200), #pos=(10, 10),

                  )

这里唯一的问题是你必须在 re-size 事件上更新 pos_hint

【讨论】:

谢谢 - 这当然是一个很好的解决方法。事实上,如果没有办法显式设置绝对位置,我将其标记为 sol。【参考方案2】:

pos_hint 应该是一个字典,而不是一个元组,所以 pos_hint=pos_hint=None 可能会起作用(但我不确定哪个)。

【讨论】:

啊,我忘了添加我的其他尝试——其中一些是你推荐的。不幸的是,这些不起作用(请参阅更新的问题)。

以上是关于如何用绝对坐标定位 Kivy Popup?的主要内容,如果未能解决你的问题,请参考以下文章

div+css绝对定位,有X,Y坐标吗?

如何把手机定位的经纬度坐标发到服务器,然后在PC端网页显示手机所在的位置

如何用Python批量获取经纬度坐标

如何用PHP获取到百度地图坐标或者经纬度

CSS 绝对定位和相对定位

为啥用absolute定位的元素,其父元素通常需要relative相对定位呢?