QPopupEdit 组件可以用于“就地”编辑值,例如 QTable 中的单元格。默认情况下,单元格以字符串形式显示,然后如果您使用 QPopupEdit 并且用户单击/点击表格单元格,则会打开一个弹出窗口,用户可以在其中使用文本字段编辑值。
此组件将 QMenu 注入到其父 DOM 元素中并启用上述行为,因此它 **可以在任何地方使用**,而不仅仅是在 QTable 中。
用法
警告
如果在 QTable 上使用,QPopupEdit 将无法与单元格范围插槽一起使用。
独立
使用 QTable
单击单元格以查看弹出编辑器。列“名称”演示了 title
属性。列“卡路里”显示了数字值的用法。列“脂肪”还演示了 disable
属性。如果您查看源代码,您会看到“脂肪”的单元格正在使用 QPopupEdit,但是当单击单元格时,弹出窗口没有显示。
自定义
持久化并带有按钮
您还可以使用 buttons
属性添加两个按钮,“取消”和“设置”(默认标签)。这些按钮有助于控制用户的输入。与 buttons
属性一起,您还有 persistent
属性,它拒绝用户使用 Escape 键或单击/点击弹出窗口之外来关闭弹出窗口。最后,您可以使用 label-set
和 label-cancel
属性控制两个按钮的标签,如“蛋白质”列所示。请注意,“保存”正在替换“设置”,而“关闭”正在替换“取消”。
persistent
属性在“碳水化合物”列中进行了演示。
默认插槽
默认插槽的参数是
{ initialValue, value, validate, set, cancel, updatePosition }
警告
不要解构插槽的参数,因为在使用 value
属性直接使用 v-model
时,这会产生 lint 错误。
文本区域 / QEditor
由于 QPopupEdit 包裹了 QInput,因此您基本上可以使用任何类型的 QInput。例如,您也可以使用文本区域,如下面的“评论”列所示。
提示
当使用多行控件(文本区域、QEditor)进行输入时,您还需要在组件上使用 @keyup.enter.stop
来阻止 Enter 键关闭弹出窗口。您还需要添加按钮来控制弹出窗口。
验证
QPopupEdit 还允许对输入进行简单的验证。要使用它,您需要向它提供一个回调函数,该函数的形式为箭头函数,它应该返回一个布尔值。 (value) => Boolean
。这 **在下面的“卡路里”列中进行了演示**。
提示 1
请注意,我们正在使用 hide
事件来重新验证输入。如果我们不这样做,QInput 的 error 属性将停留在无效状态。
提示 2
在此示例中,我们正在使用 QInput 的外部错误处理。我们也可以使用 QInput 的 validation 属性并将值发出到 QPopupEdit 的 validation 属性。使用 Vuelidate 时也可以实现相同的概念。换句话说,提供给 QPopupEdit 的 validate 函数的值可以来自任何地方。