我注意到如果在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” body 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中所做的更改。
答案 0 :(得分:0)
使用相关对象创建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