2010-06-02 56 views
3

我在創建GUI方面並不是很大,我的理念一般是:我不創建它們,或者我儘可能簡單地讓它們變得簡單(並說服我自己更好的可用性: )qt中的chrome-like狀態欄

對於我當前的項目,我使用Python的Qt(PyQt),並且我想開始添加一些GUI元素而不會使界面混亂。

我的想法是將這些元素創建爲只在必要時出現的浮動形狀小部件;非常像鉻中的狀態欄(和查找欄)。

是否有任何標準API可以創建這種接口?

+0

看看rekonq瀏覽器(http://rekonq.sourceforge.net/)。它具有與Chrome相同的狀態欄,並使用Qt編寫。 – Job 2010-06-03 10:08:21

+0

這似乎只是一個黑客,我可以做無論如何..我要求的是某種形式的固體api(如果有的話) – hasen 2010-06-04 04:40:56

回答

5

這不是很複雜。如果您想在Chrome中使用狀態欄,只需在窗口底部有一個QFrame,並在需要時顯示或隱藏它。

這裏有2個選項,添加是作爲窗口布局的一部分,因此所有項目在顯示時都會向上移動。或者你可以有浮動,所以它會顯示在項目的頂部。對於第二個選項,您需要創建一個窗口作爲父窗口的QFrame,然後在窗口中resizeEvent設置窗體的幾何圖形。

這是第二種方法的一個例子:)

空隙mywindow的:: resizeEvent(QResizeEvent *事件) { frame.setGeometry(0,這 - >高度( - frame.sizeHint()高度(),this-> width(),frame.sizeHint()。height()); }

我希望這可以幫助。

+0

是的,它的確如此,謝謝!我會試試 – hasen 2010-06-11 17:48:55

+1

不客氣:)。如果你想做的更酷,你可以添加動畫,所以當它出現的時候它會長大。你可以使用一個QTimeLine來連接到一個插槽,這個插槽可以增加顯示事件。 (我認爲還有一些特殊的Qt類動畫,但我從來沒有嘗試過) – cnebrera 2010-06-11 21:00:21

+0

如果我們想在這個浮動狀態欄中支持標準狀態提示(從工具欄按鈕,菜單等)怎麼辦? – 2015-03-27 17:25:35