2011-04-15 46 views
2

問候,帶有多個(兩個)GUI /圖形層或緩衝區的Qt

我剛開始探索Qt,我想知道以下是否可能。我想創建一個具有兩個GUI /圖層的應用程序。頂層(稱爲A)將位於底層(稱爲B)之上,兩者都將位於應用程序之上。如果按鈕存在於兩個圖層中的相同位置,則只有A中的按鈕應該可見並響應點擊事件。如果圖層A中的相應位置爲空,則圖層B中的按鈕只應接收點擊事件。我真的很喜歡Qt爲我處理這個問題。最簡單的方法是什麼?

這是可能的,我從錯誤的角度來攻擊問題。這個問題的驅動程序是我想要B圖層中的內容的屏幕截圖(無論它是否被A層中的小部件覆蓋)。我不希望該屏幕截圖中來自A層的項目,但它們仍應存在於屏幕上。我的想法是,通過將GUI分成兩層並繪製成Pixmap,我可以輕鬆地提取底層B的Qt創建圖像。也許有一種更簡單的方式讓Qt將我想要的元素繪製到屏幕外緩衝?

順便說一句,我不是在這裏尋找完整的解決方案。 Qt文檔非常好,所以我只是希望能夠指出正確的方向。謝謝!

回答

1

聽起來像QGraphicsView的工作。這將做到你想要的。

+0

不幸的是,我一直無法解決這個問題,但我的同事有一個解決方案。據我瞭解,他使用渲染功能將B層中的元素繪製到另一個緩衝區。基本上,當他的函數被調用時,它清除標記爲層A一部分的所有元素的可見標誌,調用渲染函數,然後恢復可見標誌。我們認爲這將起作用。我猜唯一的擔心是額外的重畫事件,或者如果屏幕以某種方式更新處於未知可見狀態的層A的元素的中間函數。 – GrandAdmiral 2011-04-27 13:10:54