2017-01-26 26 views
2

我目前試圖在Qt中自定義我的QPushButton(實際上是PyQt)。所以我設置StyleSheet來做到這一點。QPushbutton如何刪除由setDefault創建的顏色(True)

但問題是我需要將此按鈕設置爲默認由setDefault爲True。

如果我這樣做,我有一種顏色流口水... ...我怎麼能擺脫它?

下面是一個例子:

button = QPushButton('login') 
button.setDefault(True) 
button.setObjectName('login') 
button.setStyleSheet(
    """ 
     QPushButton#login { 
      background-color: #4caf50; 
      color: white; 
      border: none; 
     } 
     QPushButton:pressed#login { 
      background-color: #59b75c; 
     } 
    """ 
) 

按鈕顯示爲綠色,但文字不完全的白色......我已經嘗試設置樣式表上QPushButton:default不過,這並不在所有

+0

我想你在你的代碼中缺少'button.setObjectName(「login」)''。按鈕構造函數的參數用於顯示文本。 –

+0

另外,'QPushButton#login'具有'QPushButton:default'的先例。你需要使用'QPushButton#login:default'來覆蓋它。 –

回答

0

在互聯網上進行長時間搜索後一個鏈接,我終於找到了如何做。我必須將outline設置爲none才能將其刪除。

QPushButton#login { 
    background-color: #4caf50; 
    color: white; 
    outline: none; 
} 

然後,流口水的顏色消失。

2

改變什麼我可以看到你的代碼中有一個小錯誤。你給了我們

QPushButton:pressed#login { 
    background-color: #59b75c; 
} 

但這不起作用。

正確的方法來做到這一點是

QPushButton#login:pressed { 
    background-color: #59b75c; 
} 

還,肯定的是,「#」後使用按鈕的對象名,而不是按鈕的文本。

下面是一些styleSheet examples

+0

這是真的,我更新了我的代碼。 – Algorys