我已经建立了一个插件来为Spatialite数据库提供输入掩码。有两个字段代表对象的最小/最大尺寸。
当我iface.actionMeasure().trigger()
用两个按钮“ Measure” 调用“测量工具”()时,单击尺寸,然后用键盘将值键入字段(QLineEdit)。
使用“测量工具”右键单击(完成测量)后,是否有可能将值自动提交到该字段(最小或最大,QLineEdit)?
- 通话计量工具(有效)
- 左键单击:开始测量
- 4.一次:右键单击并将“测量工具的总值”提交到最小值字段(QLineEdit)。
更新1:
问了这个问题的一天后,我想到了一个线串层,可以用作测量工具(ST_Length(geom))。优点是您可以完全控制操作并从中获取数据。缺点是项目中的附加层。
工作流程可以是:
单击测量:切换编辑,激活“添加功能”
创建代表对象最小尺寸的线串
确认更改,计算线串的长度(ST_Length(geom)),将长度提交给QLineEdit
关闭对话框并删除线串(DELETE FROM)
但是我的实际问题仍然存在。有没有办法直接从测量工具获取距离值?
更新2:
在Jakob的帮助下,我可以使用Measure Tool的Total值更新QLineEdit,直到关闭Measure Tool。然后将该值设置为“ 0,000 m”。我通过使用以下方法解决了这个问题:
def text_changed(str_measure):
if str_measure == '0,000 m':
pass
else:
self.min.setText(str_measure)
它可以工作,但是我不知道这是否是正确的解决方案。