2013-05-15 99 views
2

我有一個QWizard,每次嚮導頁面變得可見時,我需要執行某些操作。目前我在validateCurrentPage函數中執行此操作,但我意識到僅在按下「下一步」按鈕時才調用它,而不是「後退」按鈕。如何檢測在QWizard中按下的後退按鈕?

我已經試過currentIdChangedcustomButtonClicked信號,但這些沒有得到或者叫做。

任何想法如何我可以響應在後退按鈕被按下後顯示的嚮導頁面?我一定是簡單的東西...

謝謝你,艾倫

編輯:由cmannett85

QAbstractButton *backButton = button(QWizard::BackButton); 
connect(backButton, SIGNAL(clicked()), this, SLOT(backClicked)); 

完整的錯誤要​​求添加的代碼和編譯器錯誤是:

錯誤1錯誤C2664:'bool QObject :: connect(const QObject *,const char *,const QObject *,const char *,Qt :: ConnectionType)':無法轉換t參數1從'QAbstractButton *'到'const QObject *'

+1

這個錯誤並沒有真正意義,除非你忘了加上 「#包括」。 – darron

+0

謝謝。這確實是錯誤的原因......對不起,我沒有發現它自己。 –

回答

2

獲取帶有QAbstractButton *QWizard::button (WizardButton which)的後退按鈕並將其連接到插槽。

例子:

QAbstractButton *backButton = wizard->button(QWizard::BackButton); 
connect(backButton, SIGNAL(clicked()), this, SLOT(backClicked())); 
+0

謝謝。我已經試過這個,但我得到了錯誤「不能將參數1從'QAbstractButton *'轉換爲'const QObject *'」。如果我可以通過ui到達後退按鈕 - > ...那麼它會起作用。 –

+0

@AlanSpark QAbstractButton從'QObject'派生出來,還有別的東西可以用來爲你的問題添加你用於編譯器和編譯器錯誤的代碼嗎? – cmannett85

+0

它看起來像是要完成這項工作,儘管它看起來應該比它應該更復雜一些。儘管我現在會解決它!謝謝你的幫助。 –