如何更改QPushButton文本和背景颜色

时间:2014-07-09 16:35:59

标签: python qt pyqt qtstylesheets

我使用以下代码将QMenu连接到QPushButton。单击按钮时,会显示一个带有多个子菜单项的下拉菜单。

button=QPushButton()
button.setText("Press Me")

font=QtGui.QFont()
button.setFont(font)
button.setSizePolicy(ToolButtonSizePolicy)

button.setPopupMode(QtGui.QToolButton.InstantPopup)
menu=QtGui.QMenu()
button.setMenu(menu)

menuItem1=menu.addAction('Menu Item1')
menuItem2=menu.addAction('Menu Item2') 

现在根据条件,我想通过给它一个文本和背景颜色来自定义QPushButton显示。以下代码行(应该更改背景颜色)对连接到QMenu的QPushButton没有影响。

button.setStyleSheet('QPushButton {background-color: #A3C1DA}')

我想知道如何更改QPushButton的背景颜色以及按钮的文字颜色。

3 个答案:

答案 0 :(得分:21)

除了与您的代码示例设置存在一些不一致之外,QPushButton的背景颜色和文字颜色也可以正常使用:

setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}')

示例(使用PySide):

from PySide import QtGui

app = QtGui.QApplication([])

button = QtGui.QPushButton()
button.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}')
button.setText('Press Me')
menu = QtGui.QMenu()
menuItem1 = menu.addAction('Menu Item1')
menuItem2 = menu.addAction('Menu Item2')

button.setMenu(menu)
button.show()

app.exec_()

结果:

enter image description here

答案 1 :(得分:0)

对于仍要通过指令更改按钮颜色的人

button.setStyleSheet('QPushButton {background-color: #A3C1DA}')

并且无法执行此操作,只需将上述说明修改为

button.setStyleSheet('QPushButton {background-color: #A3C1DA; border:  none}')

它会改变按钮的颜色,所以诀窍是去掉边框

答案 2 :(得分:0)

我会在Trilarions答案中添加评论,但没有足够的代表。

我能够使用他的建议,而无需删除边框

self.show() 
self.button.setStyleSheet('background-color: red;')

执行.show()之后 在我的应用程序上。不知道为什么下班后而不是之前。如果有人可以解释那将是很好的