2015-07-22 10 views
0

Я заметил, что если в 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"> не меняет цвет полосы прокрутки в 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

http://stackoverflow.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

ответ

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 
Смежные вопросы