Search code examples
pythonpyqtpyqt4qtextedit

How to change color of QTextEdit widget


I'm trying to change the color of a QTextEdit to black, regardless if there's text or none, to give it a terminal look. It seems to me that the default white background color of QTextEdit (PyQy4) can't be changed by means that are otherwise working for other Qt widgets. I have tried the following:

w.setTextBackgroundColor(QColor(0,0,0))

w.setAutoFillBackground(True)

p = w.palette()
p.setColor(w.backgroundRole(), QColor(0,0,0))
w.setPalette(p)

Solution

  • A simple solution is using qss:

    w.setStyleSheet("background-color: rgb(0, 0, 0);")
    

    If you want to use QPalette you should apply it to the viewport():

    p = w.viewport().palette()
    p.setColor(w.viewport().backgroundRole(), QtGui.QColor(0,0,0))
    wt.viewport().setPalette(p)