如何设置Qtextedit背景颜色?

问题描述:

我注意到,如果在HTML中我们使用类型bgcolor =“#ffd814”,那么在textedit中,背景颜色将变为颜色。我怎样才能从QAction和QColorDialog获得相同的结果?如何设置Qtextedit背景颜色?

我用这个

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); 
} 

但它不会改变HTML,所以关闭和打开后文件的背景是白色的。

备注:在<体BGCOLOR = “#ffd814” 使用BGCOLOR = “#ffd814”>不改变在文本编辑的滚动条的颜色。

如果我们使用QColor :: name,它将以QString格式的颜色名称(#ffd814)返回,我们如何将它放入html中。例如

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

这改变所选文本的颜色和HTML保存它,这样的变化我们做出的TextEdit被记住。

+0

http://*.com/questions/9554435/qtextedit-background-color-change-also-the-color-of-scrollbar –

+0

http://www.qtcentre.org/threads/2196- Qt4-QTextEdit-background-color –

+0

我已经看到它们,它们不能根据需要正常工作。 – Giorgi

使用相关对象创建您的QPalette。

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

这是一个工作示例;

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