5.3. Lesson: 表格
当您通过数字化添加新数据时,将显示一个对话框供您填写该要素的属性。但是,默认情况下,此对话框的外观不是很好。这可能会导致可用性问题,特别是当您有大型数据集要创建时,或者如果您希望其他人帮助您数字化,而他们发现默认表单令人困惑。
幸运的是,QGIS允许您为层创建自己的自定义对话框。这一课告诉你如何做到这一点。
The goal for this lesson: 若要为层创建表单,请执行以下操作。
5.3.1.
Follow Along: Using QGIS' Form Design Functionality
选择
roads
中的层 Layers 嵌板请输入 Edit Mode 和以前一样
打开
roads
层的属性表右键单击表中的任何单元格。将出现一个简短的菜单,其中包括 Open form 进入。
单击它以查看QGIS为该图层生成的表格
显然,能够在查看地图时执行此操作将是件好事,而不是需要在 Attribute Table 一直。
5.3.2.
Try Yourself Using the Form to Edit Values
如果处于编辑模式,则可以使用此表单编辑要素的属性。
5.3.3.
Follow Along: Setting Form Field Types
使用表单编辑东西很好,但您仍然需要手动输入所有内容。幸运的是,表单有不同类型的所谓 widgets 允许您以各种不同的方式编辑数据。
打开 roads 层的 Properties...
切换到 Fields 标签。您将看到以下内容:
切换到 Attributes Form 标签。您将看到以下内容:
按下
oneway
行并选择 Checkbox AS Widget Type 在选项列表中:单击 OK
进入编辑模式(如果
roads
层尚未处于编辑模式)点击您先前选择的同一条主干道
现在您将看到, oneway 属性旁边有一个复选框表示 True
(选中)或 False
(未选中)。
5.3.4.
Try Yourself
为设置更合适的表单微件 highway 菲尔德。
回答
对于 TYPE 显然,道路的类型是有限的,如果您检查该层的属性表,您将看到它们是预定义的。
将小部件设置为 Value Map 并点击 Load Data from Layer 。
选择 roads 在 Label 下拉菜单和 highway 对于这两个 Value 和 Description 选项:
单击 OK 三次。
如果您使用 Identify 街道上的工具现在当编辑模式处于活动状态时,您得到的对话框应如下所示:
5.3.5.
Try Yourself Creating Test Data
您还可以完全从头开始设计您自己的自定义表单。
创建名为的简单点图层
test-data
具有两个属性:名称(文本)
年龄(整数)
使用数字化工具捕获新图层上的几个点,以便您有一些数据可用。每次捕获新的点时,您都应该看到默认的QGIS生成的属性捕获表单。
备注
如果在早期任务中仍启用捕捉,则可能需要禁用捕捉。
5.3.6.
Follow Along: Creating a New Form
现在,我们希望为属性数据捕获阶段创建我们自己的定制表单。要做到这一点,您需要 QT Designer 已安装(仅创建表单的人员需要)。
开始 QT Designer 。
在出现的对话框中,创建一个新对话框:
寻找 Widget Box 在屏幕的左侧(默认)。它包含一个名为 Line Edit 。
单击此项目并将其拖到您的表单中。这将创建一个新的 Line Edit 在表格中。
选择新行编辑元素后,您将看到其 properties 在屏幕的一侧(默认情况下在右侧):
将其名称设置为
name
。使用相同的方法,创建一个新的 Spin Box 并将其名称设置为
age
。添加 Label 与文本一起
Add a New Person
粗体(在对象中查看 properties 以了解如何设置此设置)。或者,您可能希望设置对话框本身的标题(而不是添加标签)。添加 Label 为了你的 Line Edit 而你的 Spin Box 。
按照你自己的意愿安排元素。
在对话框中的任意位置单击。
找到 Lay Out in a Form Layout 按钮(默认情况下位于屏幕顶部边缘的工具栏中)。这将自动布局您的对话框。
Set the dialog's maximum size (in its properties) to
200
(width) by150
(height).您的表单现在应该类似如下所示:
将新表单另存为
exercise_data/forms/add_people.ui
保存完成后,您可以关闭 Qt Designer
5.3.7.
Follow Along: Associating the Form with Your Layer
返回QGIS
双击 test-data 图例中的层以访问其属性。
按下 Attributes Form 选项卡中的 Layer Properties 对话框
在 Attribute editor layout 下拉列表,选择 Provide ui-file 。
单击省略号按钮,然后选择
add_people.ui
您刚刚创建的文件:单击 OK 在 Layer Properties 对话框
进入编辑模式并捕获新点
当您这样做时,您将看到您的自定义对话框(而不是QGIS通常创建的通用对话框)。
如果您使用
Identify Features 工具,您现在可以通过在识别结果窗口中单击鼠标右键并选择 从上下文菜单中。
如果您处于该层编辑模式,则会显示上下文菜单
相反,即使在初始捕获之后,您也可以调整新表单中的属性。
5.3.8. In Conclusion
使用表单,您可以在编辑或创建数据时使自己的工作更轻松。通过编辑小部件类型或从头开始创建一个全新的表单,您可以控制为该层数字化新数据的人员的体验,从而将误解和不必要的错误降至最低。
5.3.9. Further Reading
如果您完成了上面的高级部分并了解Python,您可能会想要查看 this blog entry 关于使用Python逻辑创建自定义功能表单,该逻辑允许数据验证、自动完成等高级功能。
5.3.10. What's Next?
打开识别功能的表单是QGIS可以执行的标准操作之一。但是,您也可以指示它执行您定义的自定义操作。这是下一课的主题。