為何捐款
API 瀏覽器
彈出式編輯器

QPopupEdit 元件可以用於「就地」編輯值,例如 QTable 中的儲存格。預設情況下,儲存格顯示為字串,然後如果您使用 QPopupEdit,並且使用者點擊/點選表格儲存格,則會開啟一個彈出視窗,使用者可以在其中使用文字輸入框編輯值。

此元件將 QMenu 注入其父 DOM 元素中,並啟用上述行為,因此它可以應用於任何地方,而不僅僅是在 QTable 中。

載入 QPopupEdit API...

用法

警告

如果在 QTable 上使用,QPopupEdit 將無法與儲存格作用域插槽一起使用。

獨立使用

點擊文字



與 QTable 搭配使用

點擊儲存格以查看彈出式編輯器。「Name」欄位示範了 title 屬性。「Calories」欄位顯示了數值用法。「Fat」欄位也示範了 disable 屬性。如果您查看原始碼,您會看到「fat」的儲存格正在使用 QPopupEdit,但是當點擊儲存格時,彈出視窗不會顯示。

編輯第一個欄位



自訂

自訂 QPopupEdit



持久化且帶有按鈕

您也可以使用 buttons 屬性新增兩個按鈕:「取消」和「設定」(預設標籤)。這些按鈕有助於控制使用者的輸入。除了 buttons 屬性之外,您還可以使用 persistent 屬性,該屬性會拒絕使用者使用 Esc 鍵或點擊/點選彈出視窗外部來關閉彈出視窗。最後,您可以使用 label-setlabel-cancel 屬性來控制兩個按鈕的標籤,如「Protein」欄位所示。請注意,「Save」取代了「Set」,「Close」取代了「Cancel」。

persistent 屬性在「carbs」欄位中示範。

持久化編輯,且帶有按鈕



預設插槽

預設插槽的參數為

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

警告

請勿解構插槽的參數,因為當直接將 value 屬性與 v-model 一起使用時,會產生程式碼檢查錯誤。

預設插槽參數



Textarea / QEditor

由於 QPopupEdit 包裝了 QInput,因此您基本上可以使用任何類型的 QInput。例如,您也可以使用文字區域,如下面的「Comments」欄位所示。

提示

當使用多行控制項(textarea、QEditor)進行輸入時,您還需要在元件上使用 @keyup.enter.stop,以阻止 Enter 鍵關閉彈出視窗。您還需要新增按鈕來控制彈出視窗。

QInput textarea



QEditor



驗證

QPopupEdit 也允許對輸入進行簡單驗證。要使用它,您需要以箭頭函數的形式給它一個回呼函數,它應該傳回一個布林值。(value) => Boolean。這在下面的「Calories」欄位中示範

提示 1

請注意,我們也正在使用 hide 事件來重新驗證輸入。如果我們不這樣做,QInput 的 error 屬性將會「掛起」在無效狀態。

提示 2

在此範例中,我們正在使用 QInput 的外部錯誤處理。我們也可以使用 QInput 的 validation 屬性並將值發送到 QPopupEdit 的 validation 屬性。當也使用 Vuelidate 時,可以實作相同的概念。換句話說,給予 QPopupEdit 驗證函數的值可以來自任何地方。

使用驗證編輯