我正在使用Qt Designer創建一個QWizardPage。由Qt設計器創建的訪問QWizardPage
我已經將文件導入到Qt Creator和它運行良好,到目前爲止(我可以生成項目,並運行該向導就好了)
現在我需要重新實現isComplete
功能,但我一個無法瞭解去做吧。這些頁面被命名爲wizardPage{,1,2_1,_2}
。我想知道什麼是現在重新實現isComplete()
函數的最佳方法。
我正在使用Qt Designer創建一個QWizardPage。由Qt設計器創建的訪問QWizardPage
我已經將文件導入到Qt Creator和它運行良好,到目前爲止(我可以生成項目,並運行該向導就好了)
現在我需要重新實現isComplete
功能,但我一個無法瞭解去做吧。這些頁面被命名爲wizardPage{,1,2_1,_2}
。我想知道什麼是現在重新實現isComplete()
函數的最佳方法。
爲了使isComplete()
函數超載QWizardPage
,您需要自己創建QWizardPage
。基本上,佈局一個窗體 - 就像你會對話 - 只爲你想要的頁面。爲該頁面創建一個類。這個類繼承QWizardPage
並重新實現isComplete()
用於任何你想要的檢查。現在在你的嚮導中,找到你想要的頁面。刪除其上的所有小部件,然後右鍵單擊並選擇Promote Widget...
。輸入您的班級名稱和頭文件的路徑。現在,當你編譯時,它應該爲你的頁面使用你的類的一個實例,包括你的替代isComplete()
。
這意味着我將不得不重新創建所有內容,而是將其創建爲QWizardPages而不是普通的QWizard? –
@Hiemanshu Sharma:是的。然而,對於大多數設置來說並不是那麼困難。您可以在Qt Designer的相同實例中打開當前嚮導和新頁面小部件,然後從嚮導中剪切小部件並將其粘貼到頁面中。 –
聲音可行。真的不應該花那麼多時間。 –
如果您想禁用嚮導的「下一步」按鈕,我不確定您想要問什麼,但從isComplete()返回false。
當你想啓用「下一步」按鈕發出completeChanged()信號並返回true。
默認實現已經返回true。所以你甚至可能不需要重寫這個方法。
我希望這會有所幫助。
是的。我想實現isComplete(),但我如何訪問使用Qt Designer創建的頁面。 (所有代碼都在編譯ui文件時生成的頭文件中) –
你不能使用'completeChanged()'信號並將其掛接到一個插槽(函數)進行處理嗎? –