2011-10-13 88 views
1

我正在使用Qstylesheet來控制一些QPushButtons和QToolButtons的行爲。當我徘徊在他們身上時,他們變黑了,正如我想要的那樣。但是,一旦我按下它們,它們就會變成一種有趣的灰色紅色,並且在它們內部繪製出一個紅色框。顏色的QPushButton或QToolButton

什麼是我必須設置爲了避免這種行爲的屬性或僞狀態?我已經通過了與選擇和背景有關的所有屬性,並且不能讓這個消失

+0

您能否提供更多信息,例如:你在哪個平臺上運行,哪個版本的Qt,你可以提供一小段代碼來顯示你在做什麼? –

回答

5

沒有看到你的風格,這有點難以解決你的問題。所以我要做的是解釋一些事情是如何工作的,希望你能決定如何最好地解決你的問題。

首先,當您設計按鈕的樣式以確保您覆蓋所有底座時非常重要。我相信你大概知道這一點,但以防萬一......

一個QPushButton和QToolButton有很多可以風格的狀態,所以你想確保你讓你的按鈕明顯不同狀態,以便用戶可以分辨不同。

QPushButton 
{ 
    // The default look of your button 
} 

QPushButton:disabled 
{ 
} 

QPushButton:pressed 
{ 
} 

QPushButton:focus  
{ 
} 

QPushButton:hover 
{ 
} 

QPushButton:checked 
{ 
} 

使用諸如背景顏色,前景色,邊框顏色之類的東西,而且一般來說你很好。

background-color: red; 
color: white; // foreground color 
border-width: 1px; 
border-color: black; 

第二件要知道的是,樣式可以被繼承。因此,在向窗口小部件添加樣式時請務必小心。當你創建一個風格時,儘量具體。如果您將這種風格賦予UI中的某些東西,背景顏色將是藍色的,但危險的是,此風格的所有子部件也將繼承此風格。

QWidget 
{ 
    background-color: blue; 
} 

也許這就是你想要的,但往往不是。所以如果你是樣式按鈕,總是把QPushButton或QToolButton選擇符放在它們周圍,同樣的情況也適用於你正在設計的其他東西。所以這可能是你的灰色紅色來自的地方。

現在,關於樣式按鈕的最後一件事是關注矩形。這是你的按鈕被聚焦時出現的惱人的虛線。看下面的圖片。

Focus rectangle

可惜的是,有沒有辦法樣式使用樣式表的焦點矩形。但是,如果這就是你想要的,你可以擺脫它。請參閱以下鏈接:

Getting rid of the focus rectangle

因此,在總結...

  1. 請確保您的按鈕樣式涵蓋了所有的狀態,你需要 。
  2. 確保您的按鈕不受其他 添加到其他小部件的樣式的影響。
  3. 根據需要更改焦點矩形,或者刪除 。

我希望有所幫助。如果你想得到更具體的幫助,那麼請張貼你的風格,我會看看它。

+0

謝謝,重點矩形提示真的很好 – jhowland