群組 KDAB是Qt,C ++和OpenGL應用程序的軟件顧問 除此之外,還適用於不同的平台(台式機,嵌入式和移動平台) 提供輔導以從頭開始開發Qt應用程序 並將所有流行的幀傳輸到Qt。
這些年來 KDAB為QDockWidget的開發做出了貢獻並提供了資金。 但是由於使用QdockWidget進行更改和錯誤修復需要花很多天的時間, 事實證明這不是一個好選擇,因此誕生了KDDockWidgets。
KDDockWidgets是 QDockWidgets的高級停靠框架,通過添加QDockWidgets不支持的功能來擴展其用途。
QdockWidget將GUI代碼與具有狀態的邏輯本地結合在一起, 勞闕 使得採用新功能前進非常困難, 這導致在不同平台上實施它的複雜性。 由於它是一系列圖形用戶界面的基本組成部分,因此您可以將整個窗口元素(工具欄,小部件組等)移動到任意位置。
黃大仙禁運, KDAB認為QDockWidgets代碼的維護不是一件容易的事, 他評論說:
在從事兩個需要大量定制的項目之後,KDDockWidgets出於維護我的理智的需要而誕生。 我們試圖直接在上游工作的地方,但是回歸的速度最終太大了。
還有另一個我使用私有API,偽造的鼠標事件和事件過濾器的方法,起初似乎是個好主意,但最終卻是一個痛苦的世界。 另外,我們的客戶在請求方面變得更具創意,因此很明顯,我們需要一個更好的對接框架。
主要問題是它的設計,它非常單一但可配置(對於動畫,我們可以選擇用戶可用的功能,即使很少有人這樣做),也帶有意大利麵條代碼(愉快地將邏輯和組件狀態混合在一起)。 因此,任何更改都可以創建大量回歸。
這就是為什麼KDAB決定創建KDDockWidgets的原因,它試圖極大簡化QDockWidgets設計,同時促進其適應特定情況。
KDDockWidgets提供以下功能:
- 能夠將小部件停靠在浮動窗口中並將該組停靠到主窗口
- 停靠到任何窗口,而不僅僅是主窗口
- 停靠在主窗口的中央
- 支持主窗口中央小部件中的可分離選項卡
- 能夠從擴展塢中的標籤欄分離標籤
- 通過組合各種組件來組合多個選項卡的能力。
- 公開內部幫助窗口小部件,以便用戶可以自定義它們或提供自己的窗口小部件。
- 組件組可以從外部窗口(僅包含此組件組)自由切換到主窗口(在Qt 5.10中部分實現的功能)。
- 自定義標籤小部件
- 自定義標題欄
- 自定義窗框
- 除了強調主要的變化之外,還添加了精確的指示器以從GUI中刪除元素,此外,中央窗口小部件的概念也消失了,因為它不再是特定的元素。
新組織清楚地將邏輯與圖形界面分開,因此基礎運行時為 可以輕鬆地重新用於Qt Quick接口 (最終可以預期)。 它還使自定義界面變得容易,用戶可以為界面的任何部分提供自己的窗口小部件。
另外, KDDockWidgets旨在成為一個框架,因此您可以輕鬆地覆蓋接口 提供自定義外觀和行為。 KDDockWidgets是一個開源框架, 已獲得GPLv2和GPLv3許可。
可以使用KDDockWidgets代碼及其演示 在下面的鏈接中。