如何设置 Qtextedit 背景颜色?

Posted

技术标签:

【中文标题】如何设置 Qtextedit 背景颜色?【英文标题】:How to set Qtextedit background color? 【发布时间】:2015-07-22 04:59:34 【问题描述】:

我注意到,如果在 html 中我们使用 bgcolor="#ffd814" 类型,那么在 textedit 中,背景颜色将变为颜色。如何从 QAction 和 QColorDialog 获得相同的结果?

我用过这个

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" 不会改变 textedit 中的滚动条颜色。

如果我们使用 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 中所做的更改会被记住。

【问题讨论】:

***.com/questions/9554435/… qtcentre.org/threads/2196-Qt4-QTextEdit-background-color 我已经看过了,它们不能按需要正常工作。 【参考方案1】:

使用相关对象创建您的 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

【讨论】:

正确的方法签名应该是ui->textEdit->palette()

以上是关于如何设置 Qtextedit 背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

word表格背景颜色设置 word表格如何设置背景颜色

如何设置menu bar背景颜色???

如何设置鼠标经过时,改变背景颜色?

如何设置xshell的背景颜色

excel如何设置背景颜色

如何设置Android Studio背景的颜色