2011-09-10 23 views
1

我有一個按鈕類,我用鼠標按下和釋放事件。假設我想要當我按下一個按鈕時,另一個子窗口應該打開,並且直到該子窗口被打開,按鈕應該處於按下狀態。我該怎麼做?如何顯式調用qt mousepressevent?

回答

2

您不應該使用鼠標按下/釋放事件來檢測按鈕上的操作,除非您有非常特定的需求,並且完全不關心鍵盤操作和快捷方式。使用clicked()信號。

爲了讓您的按鈕在點擊後保持壓低狀態,您應該在製作時將QPushButton設置爲切換按鈕模式,方法是調用setCheckable(true)

當你像往常一樣按下它時,它會發出clicked()信號,但會一直保持在壓低狀態,直到你再次點擊它,或者你打電話給setChecked(false);

因此,當您關閉彈出窗口時,只需取消選中切換按鈕即可。 (或者第二次點擊那個按鈕,這將取消選中它,同時關閉彈出窗口。)

注意:調用setChecked(bool)從不觸發clicked()信號。但是如果你需要的話,它會觸發toggled(bool)

+0

其實我正在重新繪製圖像在每個鼠標懸停,按下,釋放case.Your的概念是有點確定,但在這種情況下,你將如何處理徘徊的情況?我將如何知道鼠標畫家進入我的小部件? – user896036