2013-06-26 37 views
0

我正在嘗試使QWidget跟着另一個移動。移動後跟着一個QWidget

特別是,我有一個QMainWindow一個按鈕。此按鈕顯示QWidget,「追隨者」。現在我想追隨者實際上在我拖動它時遵循QMainWindow

我已經重新實現QMainWindow::moveEvent()可更新跟隨的位置,但移動和追隨者之間的巨大延遲。它的工作原理,但它看起來像從1990年的東西!我實際上可以拖動窗口,當我停下來時,跟隨者會移動。

如何使追隨者「粘在」QMainWindow上?當我拖動它時,我希望它實際上粘在窗戶上!

任何提示?

乾杯!

+0

在爲窗口設置新位置之後,嘗試調用'QApplication :: processEvents()'。 –

回答

0

文檔說一下moveEvent:

當小部件接收這個事件,這已經是在新的位置。

所以也許更好的方法是(與QTimer例如)主窗口的位置,定期檢查,如果它改變了移動追隨者。

您的評論後,另一個想法是重新實現:

void MainWindow::mouseMoveEvent(QMouseEvent *event) 

與使用自定義部件(即新的形式或使用Qt :: FramelessWindowHint)沒有系統欄,拖動將被重新實現自定義欄進行,在這種情況下,你會將mainWindow和跟隨者放在一起。

+0

呃...這不是非常無CPU的! :)可能會達到粘性,但頻率很高。 – senseiwa

相關問題