我正在尝试创建一个只有图标和常量背景颜色的QPushButton
。
这样我就可以在用户点击它时换出图标,而没有任何其他明显的效果(这是一个上卷/下滚功能)。我在样式表中添加了这样的条目:
QPushButton.ToggleButton {
background-color: #8af;
}
并设置按钮的类以匹配,这确实给了我想要的外观,除了当我点击它时背景颜色变为浅蓝色,这是我不想要的。我错过了什么?
编辑:我想我应该提到我正在使用Qt 4.5和PyQt 4.6来做到这一点......
答案 0 :(得分:1)
我知道人们喜欢使用样式表,但在这种情况下,我认为制作自定义按钮同样容易。定义一个继承自QAbstractButton
的类,并覆盖paint()方法。在paint方法中,使用所需的背景颜色填充rect,然后在顶部绘制当前图标。如果您想要按钮周围的边框,可能会稍微复杂一点,但不是很多。
或者,您还可以查看QPalette
的角色,特别是QPalette::Light
和QPalette::Midlight
,可能会在按下时调整按钮的颜色。
答案 1 :(得分:1)
尝试使用QObject :: setObjectName为该按钮指定一个ID,然后使用#idSelector应用该样式?
在Python中,代码可能看起来像这样:
button = QPushButton(self)
button.setObjectName("ToggleButton")
和这样的样式表:
#ToggleButton:pressed {
background-color: #8af;
}
答案 2 :(得分:0)
我猜你做background-color: #8af !important;
太明显了,所以我认为这样做不行。如果你还没有这样做,那值得一试。
否则,如this question中所述,您可以设置特定的状态。尝试为按下状态设置相同的背景颜色:
QPushButton.ToggleButton:pressed { background-color: #8af; }
对不起,如果我误解了。希望有所帮助。
答案 3 :(得分:0)
在Qt设计器中打开按钮的样式表并尝试:\ n
QPushButton:pressed {
image: url(/path/to/your/file/fileName.png);
}