2016-11-04 13 views
1

我是Qt的新手。 我創建一個QWizard並添加一些QWizardPage。現在,除了後退按鈕之外,我還想通過其他方式在頁面之前回放,例如:某些sinal或某些功能。Qt WizardPage帶有一些明確的功能

在細節,我想在第2頁操作某些funtion,展現在這一個消息框,並提供的choise回到第1

+0

http://doc.qt.io/qt-5/qwizard.html#back? – Hayt

+0

非常感謝。你知道如何去指定頁面(例如:第5頁) –

回答

1

QWizardback(也nextrestart如果插槽需要)

可以手動調用槽等的函數調用

wizard->back(); 

或將其連接到一個自定義的信號

connect(someClass,&class::mysignal,wizard,&QWizard::back); 

當你想要一個更復雜的行爲,也許你應該考慮建立一個non-linear wizard

的Qt對如何做到這一點,一般的指導。

基本上它是重寫QWizard::nextId(),當嚮導想要確定接下來跳轉的位置時,將調用此函數。


雖然您不能直接跳轉到某個頁面。你必須調用back/next/restart

這可以通過這雖然可以workarounded:

while(wizard->currentId() != <desiredID>) 
{ 
    wizard->back(); 
} 

要知道,雖然你不進入無限循環,如果你已經在頁面之前。去頁1 restart將是一個更好的選擇。或者提到一個非線性向導。

+0

我嘗試在我的嚮導頁中調用wizard-> back(),嚮導是它添加到的嚮導的關鍵點。但它不起作用。 'void NiuFPage :: on_pushButton_clicked() { parentwizardpoint-> back(); }' –

+0

現在沒問題。我之前將錯誤的功能連接到點擊的信號。 非常感謝您的詳細信息 –