2014-03-06 44 views
2

有沒有人有想法如何樣式這個矩形按鈕 - 這是一個QToolbar的默認孩子?QToolBar:造型「顯示更多」按鈕

enter image description here enter image description here enter image description here

首先兩個圖像顯示按鈕時圖形界面上正常顯示模式。它出現;因爲工具欄圖標沒有足夠的空間。第三張照片顯示全屏模式,其中我的圖標有空間。

我想要設計它的形狀,以便它有一個徑向邊框,沒有一個角落。這將以第二張圖片取消它醜陋的外觀。

我想讓用戶在普通視圖中使用界面,所以鎖定應用程序到全屏不是一個選項。我確實想使用按鈕,因此刪除是不可接受的。將其位置設爲剩餘5個像素或將其替換爲另一個可按鈕可能是可行的解決方案,但我無法設法做到這一點。

我玩了很多toolbutton和按鈕樣式表,但沒有運氣的樣式這個小按鈕。我非常迷戀我的圖形設計,但不想浪費太多時間(如果解決方案不是微不足道的,我會將我的工具欄更改爲矩形)。

在此先感謝。

回答

2

我找到了解決辦法,列出的子對象我的工具欄的名稱。

QStringList list; 
for(int i=0; i<toolBar->children()->size(); i++) 
list.append(toolBar->children()[i]->objectName(); 

在列表內,只有一個具有默認名稱(不是「「)的對象。這是qt_toolbar_ext_button

然後我就能夠設置樣式爲:

"#qt_toolbar_ext_button { //... }" 
-1

只要做到這一點:Qt documentation about stylesheets

+1

謝謝,我意識到這個按鈕只是一個qtoolbutton;但我只想設計那個按鈕的樣式;不是所有的qtoolbuttons。任何想法來獲得它的對象名稱? – baci

+0

所以你的問題是「如何獲得在QToolBar上的QToolButton的對象名稱或選擇器?」 –

+0

是的,但我意識到,後你的答案 - 我沒有downvote :) – baci

0

我知道這已經回答了,但對於任何人誰需要知道答案的一個「QToolButton」,如果你需要在外部資源文件樣式表中或在不同對象的Widget UI樣式表對話框中使用對象名稱設置特定按鈕的樣式「QToolButton#objectName」。

QToolButton#objectName { 

} 

退房的文檔 - http://doc.qt.digia.com/4.2/stylesheet.html 這讓您在Qt的樣式表,或「QSS」文件的語法。

+1

好吧,問題是,我不知道對象名稱,因爲我沒有創建它。它由框架本身指定:qt_toolbar_ext_button。 「如何獲取QToolBar上的QToolButton的對象名稱或選擇器?」會是一個更好的問題。 – baci

+0

你能不能在代碼中設置對象名稱,你可以訪問這個框架的GUI對象嗎?如果你可以,那麼我會建議設置對象名稱,如前所述,然後在QSS中使用它,如果可能的話!:) – MozzieJoe

+0

是的,已經做到了。請閱讀答案。 – baci