2012-01-31 104 views

回答

5

我已經看了Qt的來源,並發現它可能通過創建自定義的按鍵佈局,然後在列表ommiting後退按鈕隱藏後退按鈕:

QList<QWizard::WizardButton> button_layout; 
    button_layout << QWizard::HelpButton << QWizard::Stretch << 
        QWizard::NextButton << QWizard::CustomButton1 << 
        QWizard::CancelButton; 
    this->setButtonLayout(button_layout); 

我希望這將節省一些時間給別人。

P.S.

AFAIU避免使用QTimer它是需要修改QWizard源代碼。簡單的方法是添加一個虛擬函數 virtual void buttonsUpdated(); 並從QWizard的末尾調用它: void QWizardPrivate :: _ q_updateButtonStates() 然後在QWizard子類中重新實現這個buttonsUpdated(),並在那裏禁用Back按鈕。

+0

你可以隨時用QWizrad :: Button(WizardButton which)const'並在任何時間隱藏/禁用它QDizard :: BackButton – 2012-01-31 21:38:01

+2

你自己檢查了嗎?我在4.7.4上進行了檢查,並沒有那麼簡單 – Dmitriy 2012-01-31 22:00:40

4

調用

QWizard::button(QWizard::BackButton).hide() 

QWizard::onCurrentIdChanged(int) 

工作對我來說(PyQt4中)。

這有效地再次隱藏每個嚮導頁上的後退按鈕,但它達到了預期的效果。

0

另一種(也許更多面向框架)的方式將設定QWizardPage,想要後退按鈕被禁用在頁面之前它來的時候,是一個提交頁面。在QWizardPage上調用this.setCommitPage(true),下一頁不會啓用其後退按鈕。

QWizardPage documentation

無效QWizardPage :: setCommitPage(布爾commitPage)設置此頁面是一個提交頁面,如果commitPage是真實的;否則,將其設置爲 正常頁面。一個提交頁面是代表 無法通過單擊後退或取消撤消的操作頁面。一個提交按鈕替換 提交頁面上的下一步按鈕。單擊此按鈕只需簡單地調用 QWizard :: next(),就像單擊下一步(Next)一樣。 一個頁面直接提交頁面的返回按鈕禁用輸入。另請參閱isCommitPage()。

如果您希望禁用所有後退按鈕,您可以在每個頁面上調用它。