2011-12-12 97 views
1

我有一個主窗口(在MS Windows上),我想要有自由屏幕移動的子窗口或子面板。我可以使用對話框和Qt::splashscreen標誌,但是當我在這些子窗口上時,我失去了主窗口的焦點標題。有什麼竅門可以做我想做的事嗎? (像多焦點...) 也許這是不可能的?Qt /我怎樣纔能有子窗口而不失主窗口焦點?

回答

0

我不知道你失去焦點是什麼意思。

當我創建一個具有多個窗口的應用程序時,這就是我所做的:在子窗口小部件中,我將父窗口設置爲主窗口,並設置Qt :: Tool標誌。它具有多種效果:窗口管理器將其視爲一個窗口,並且當您關注任何窗口時,所有窗口都會升起。

+0

MDI方法不是我想要的,除非在這種情況下我可以在mdi-main-window之外擁有子窗口。我認爲我必須做的是創建一個沒有標題標題的主窗口,編寫正確的代碼來模擬接收和失去焦點。例如,我看到在這個方向上運行的應用程序以這種方式使用,例如dreamweaver和autocad。謝謝。 – tonnot

0

你想QMdiArea?或者一個focus proxy

在Qt中,所有頂級窗口都是獨立的,沒有一個是「主」。如果你想提名一個作爲主窗口,並從其他人那裏竊取焦點,那麼你將不得不implement that manually

0

聽起來就像你只是想擁有小部件,你可以在父窗口小部件/窗口上自由移動,而無需在本地Windows窗口(...)之間調用「窗口焦點已更改」事件。

我不知道是否有應該是一個現成的解決方案,但增加了一些搶/移動/調整大小事件,以一個小部件的邊緣不應辛苦,還是?

我只是在某些區域捕獲mousedown/up事件(這些應該可能是它們自己的小部件,並帶有指向父可移動小部件的鏈接),並在鼠標移動時調整大小/移動窗口。