弹出编辑

QPopupEdit组件可用于“就地”编辑值,例如QTable中的单元格。 默认情况下,单元格显示为字符串,然后,如果您使用的是QPopupEdit,并且用户单击/轻击表格单元格,则会打开一个弹出窗口,用户可以在其中使用文本字段编辑值。

此组件将QMenu注入其父DOM元素,并启用上述行为,因此可以在任何地方使用它,不仅可以在QTable中使用。

QPopupEdit API

用法

WARNING

如果在QTable上使用,则QPopupEdit不适用于单元格范围的插槽。

独立的




使用QTable

点击单元格可以看到弹出的编辑器。列"Name"展示了title属性。列 Calories"显示的是数值用法。列"Fat"也展示了disable属性。如果你看一下源代码,你会发现"fat"单元格使用了QPopupEdit,但是当点击该单元格时,弹出窗口并没有显示。




自定义




持久且带有按钮

您还可以使用buttons属性添加两个按钮:“Cancel"和"Set”(默认标签)。 这些按钮有助于控制用户的输入。 除了buttons属性之外,您还拥有persistent属性,该属性拒绝用户使用退出键关闭弹出窗口或在弹出窗口外部单击/轻击。 persistent属性在“carbs”栏中显示。 最后,您可以使用label-setlabel-cancel属性来控制两个按钮的标签,如“Protein”列中所示。 注意,“Save"代替"Set”,而"Close"代替"Cancel"。




默认插槽

默认插槽的参数是:

{ initialValue, value, validate, set, cancel, updatePosition }

WARNING

不要破坏槽的参数结构,因为在直接使用v-modelvalue属性时,会产生linting错误。




Textarea / QEditor

由于QPopupEdit包裹了QInput,因此您基本上可以使用任何类型的QInput。 例如,您还可以使用下面的“Comments”列中所示的文本区域。

TIP

当使用多行控件(textarea、QEditor)进行输入时,您还需要在组件上使用@keyup.enter.stop,以阻止回车键关闭弹出窗口。 您还需要添加按钮来控制弹出窗口。







验证方式

QPopupEdit还允许对输入进行简单验证。 要使用它,您需要以箭头函数的形式为其提供回调函数,并且该函数应返回布尔值。 (value) => Boolean。 在下面的 “Calories”列中展示

提示1

注意,我们正在使用hide事件来重新验证输入。 如果我们不这样做,则QInput的error属性将“挂起”, 处于无效状态。

提示2

在此示例中,我们正在使用QInput的外部错误处理。 我们还可以使用QInput的validation属性并将值发送给QPopupEdit的validation属性。当也使用Vuelidate时,可以实现相同的概念。 换句话说,赋予QPopupEdit的validate函数的值可以来自任何地方。