Giorgi
Giorgi

Reputation: 179

How to set Qtextedit background color?

I noticed that if in HTML we use type bgcolor="#ffd814" then in textedit the background color will change to the color. How can I get same result from QAction and QColorDialog?

I used this

void MainWindow::on_actionBackground_Color_triggered()
{    
    QColor color = QColorDialog::getColor(Qt::white,this);
    QPalette palette;
    palette.setColor(QPalette::Base,color);
    if(color.isValid())
        ui->textEdit->setPalette(palette);
}

But it does not change HTML, so after closing and opening the file background is white.

Remark: using bgcolor="#ffd814" in < body bgcolor="#ffd814" > does not change the scrollbar color in textedit.

If we use QColor::name it will return in QString format color name (#ffd814) how can we put it in a html. for example

void MainWindow::on_actionText_Color_triggered()
{
    QColor color = QColorDialog::getColor(Qt::white,this);
    if(color.isValid())
        ui->textEdit->setTextColor(color);
}

this changes color of selected text and saves it in html, so changes we made in textedit are remembered.

Upvotes: 3

Views: 14748

Answers (1)

goGud
goGud

Reputation: 4333

Create your QPalette with related object.

QPalette palette = ui->textEdit->pallette();

Here is a working example;

QColor color = QColorDialog::getColor(Qt::white,this); // in here your color pallete will open..

QPalette p = ui->textEdit->palette(); // define pallete for textEdit.. 
p.setColor(QPalette::Base, Qt::red); // set color "Red" for textedit base
p.setColor(QPalette::Text, color); // set text color which is selected from color pallete
ui->textEdit->setPalette(p); // change textedit palette

Upvotes: 7

Related Questions