2016-09-21 57 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;}" 
相关问题