2012-08-31 30 views
0

我有一個應用程序與兩個主窗口,我想捕捉事件從一個到另一個。例如,在button1_MouseClick事件(其中按鈕1位於Form1上)時,我想將文本更改爲label1(其中label1位於form2上)。這是可能的QT C++,如果是的話,如何?你能發佈一些代碼片段嗎?窗口事件之間

P.S.我已經實現了我想用一個定時器和一個全球性的布爾值什麼,但我不喜歡

謝謝

+0

你只需要Form1以有窗口2的參考。然後對按鈕的點擊處理程序中的標籤文本進行更改。詹姆斯提出form2提供公共職能來提供該服務是正確的方式。你真的不想使用計時器。你對這個不喜歡是正確的。 –

回答

2

我不得不爲形式2類中的公共職能,要求會改變時標籤。然後將button1_MouseClick事件連接到調用Form 2公共函數的Form 1類中的私有函數。

沿着這也許行:

class form1 : public QMainWindow 
{ 
//Put in everything else class needs 

private slots: 
void callChangeLabel(); 
}; 

void form1::callChangeLabel() 
{ 
//f2 is an instance of form2 
f2->changeLabel(); 
} 


class form2 : public QMainWindow 
{ 
//Put in everything else class needs 

public: 
void changeLabel(); 
}; 
+0

感謝您的快速回復 – Jaws