2009-08-18 100 views
1

有什麼辦法可以將兩個Qt窗口連接在一起嗎?例如,如果窗口A是主窗口,而窗口B是另一個窗口小部件,我希望能夠將窗口B顯示到A的側面,並且如果窗口被拖動,兩個窗口一起移動。附加Qt窗口?

+0

您是否希望窗戶保持分開,但將窗戶移動到一起,還是希望將兩個窗戶的內容放到一個窗口中? – swongu 2009-08-19 00:08:04

回答

3

不是我知道的,但你可以嘗試跟蹤QMoveEvent的蹤跡。當一個給定的小部件被移動時,void QWidget::moveEvent (QMoveEvent * event)被調用,並且QMoveEvent包含舊的和新的pos。使用這些信息,您也可以在其他小部件中注入一個移動事件,並使其跟隨。

當然,我說的是兩個獨立的小部件,每個小部件都在自己的窗口中。如果它們被包含,你不需要任何東西,只需要一個佈局管理(參見QLayout和相關類)。

我很久沒有和Qt一起工作了,所以可能會有更好的方法,但是如果我現在必須這樣做,這就是我將要使用的策略。

此外,我覺得只有在啓動和結束時纔會調用QMoveEvent,除非啓用鼠標跟蹤。如果前者是這種情況,你會獲得其他小部件將在移動結束時「傳送」,而不是順利進行。

1

你可能是這樣的後:

http://doc.qt.io/archives/4.6/qt4-mainwindow.html

窗口A將是一個的QMainWindow和窗口B將是一個QDockWidget。

+0

窗口B必須位於窗口A的一側,而不是窗口A – TimW 2009-08-19 08:54:32

+0

我認爲我們需要原始海報來闡明所需的內容 - 當前問題可能是嘗試描述這兩種情況。 這就是爲什麼我限定我的反應與黃金「可能」:) – Dave 2009-08-20 02:29:55