2011-06-26 36 views
-2

我面對關於信號和Qt的槽機制的問題。問題的核心是在這裏:Qt的:在一個按鈕更新多個值點擊

我的應用程序由2類:

MainGUI:這個類有應用程序的所有核心功能,並具有一定的變量,存儲相關的應用價值。

偏好:這個類用於繪製和顯示一個設置面板,並且具有用於更新在MainGUI變量行編輯字段(使用信號 - 槽機構)

目前,我已經連接它們作爲如下:

Preferences *Pref; 
MainGUI *M; 
. 
. 
. 
connect(Pref, SIGNAL(pref_varAChanged(QString)), M, SLOT(setVarA(QString))); 
connect(Pref, SIGNAL(pref_varBChanged(QString)), M, SLOT(setVarB(QString))); 
connect(Pref, SIGNAL(pref_varCChanged(QString)), M, SLOT(setVarC(QString))); 
. 
. 
. 

但是,什麼這部分工作是,只要值改變,則更新變量,即使我還沒有點擊「應用」按鈕(或等效的接受按鈕... )

請幫助我實現這個功能,值A,B,C得到更新只有當按鈕,說,btn_accept被點擊...

PS:我知道這似乎是一個非常容易的問題,應該是隻有幾行,但我一直在試圖解決它,每次都撞牆。我會很感激,如果有人能在正確的方向

+0

額外的信息: 目前,我寫了這個代碼來實現前面提到的功能,但在我點擊接受按鈕值實際更新。 '空隙設定:: on_btn_accept_clicked() { 發射pref_varAChanged(UI-> lineEditA->文本()); 發射pref_varBChanged(UI-> lineEditB->文本()); emit pref_varCChanged(ui-> lineEditC-> text()); }' –

+2

不知道如果我完全理解你,但你爲什麼不掛鉤的按鈕信號的插槽,而不是由文本框所發出的信號? – Bart

+0

爲什麼不嘗試用單擊btn_accept時QLineEdits的三個QString參數發出一個信號? –

回答

0

嗯,看來我已經想通了這個問題指向我。 這僅僅是點擊ACCEPT按鈕時發出'variableChanged'信號的問題。這將更新MainGUI類中的變量。

看來我已經找到了解決方案(讀我的意見),但我誤讀輸出我的節目給了,所以我沒有意識到,我已經解決了這個問題,直到晚得多。

謝謝大家的意見。對不起,這真是太浪費時間了。

問候,

惡劣