2016-09-21 54 views
0

如何使QPushButton與被按下時相同?就像這樣:如何使QPushButton看起來與按下時相同?

enter image description here

這是按下按鈕的圖片。我應該在樣式表中寫什麼?

"QPushButton:pressed {" 
"background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," 
             "stop: 0 #dadbde, stop: 1 #f6f7fa);}" 
"QPushButton:checked {" 
"background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," 
            "stop: 0 #dadbde, stop: 1 #f6f7fa);" 
"border: none;}" 

我試着寫邊界無,但我剛剛得到這個:

enter image description here

我需要邊界保持不變。

+0

你想'QPushButton'看起來總是被按下嗎?如果是這樣,爲什麼不使用['setCheckable(true)'](https://doc.qt.io/qt-5/qabstractbutton.html#checkable-prop)和['setChecked(true)']( https://doc.qt.io/qt-5/qabstractbutton.html#checked-prop)? – Mike

+0

嘗試爲所有選擇器設置邊框,不僅針對'QPushButton:已檢查' –

+0

要點是我需要這些邊框,第一張圖片上的邊框如何。我需要相同的背景顏色。如果我沒有設置邊框 - 沒有,我會丟失背景顏色。它變得很奇怪,一些白色和透明的東西。 –

回答

0

這是因爲在默認情況下QPushButton:按下都有自己的邊界,設置本機根據您的操作系統。

要解決這個問題,你可以設置QPushButton:按邊界非常相似,它是如何現在看起來,然後設置QPushButton相同的邊框東西:檢查。

在我看來,這是一個1px的寬,黑色,邊框嵌入,所以這樣的事情應該做的伎倆。

"QPushButton:pressed {" 
"background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," 
             "stop: 0 #dadbde, stop: 1 #f6f7fa);" 
"border: 1px inset black;}" 

"QPushButton:checked {" 
"background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," 
            "stop: 0 #dadbde, stop: 1 #f6f7fa);" 
"border: 1px inset black;}" 
相關問題