【问题标题】:Change text color of QCheckBox in pyqt在pyqt中更改QCheckBox的文本颜色
【发布时间】:2015-07-02 06:28:05
【问题描述】:

我想更改QCheckBox 旁边的文本颜色。 我试过这两个问题:

how to change QCheckBox text label color in Qt?

Changing QCheckBox text color

这些解决方案似乎都不适合我。

p = QtGui.QPalette(self.chkbox[i].palette())
p.setColor(QPalette.Active,QPalette.WindowText, QtCore.Qt.red)
self.top_grid.addWidget(self.chkbox[i],i+2,0)

编辑 1:这是最小的工作代码:

from PyQt4 import QtGui, QtCore
import sys

def main():
    app = QtGui.QApplication(sys.argv)
    w = QtGui.QWidget()
    top_grid = QtGui.QGridLayout()
    chkbox=[]
    chkbox.append(QtGui.QCheckBox('1'))
    chkbox[0].setStyleSheet("color: red")
    chkbox[0].setToolTip('<b>ABC</b>' )
    top_grid.addWidget(chkbox[0],0,0)
    w.setLayout(top_grid)    
    w.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

当我这样做时,ToolTip 的颜色变为红色,但复选框旁边的文本仍为黑色。

编辑2:如果我添加行

app.setStyle('cleanlooks')

它有效。默认样式是sgi,由于某种原因,文本颜色不会改变。它适用于所有其他样式。

【问题讨论】:

  • 最小代码似乎可以正常工作。
  • @SaileshSriram 文本的颜色对我来说没有改变。只有工具提示变为红色。
  • 调色板示例不完整:您还必须这样做self.chkbox[i].setPalette(p)
  • @Tanay。你在什么平台上测试这个?
  • @ekhumoro 我添加了 setPalette 行,但它仍然没有显示。我正在使用 Ubuntu 12.04。

标签: python pyqt pyqt4 qcheckbox


【解决方案1】:

您可以使用样式表来做到这一点:

for chbox in self.chkbox:
    chbox.setStyleSheet("color: red")

【讨论】:

  • "'QCheckBox' object has no attribute 'SetStyleSheet'" 当我尝试时抛出。
  • 所有方法的首字母必须小写
  • 对不起,我应该注意到了!它仍然不起作用。文字颜色不会改变。
  • 发布最小的工作示例,以便我可以调试它
  • 我已将其添加到问题中
猜你喜欢
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
  • 2018-02-15
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多