2015-07-22 197 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」>不改變在文本編輯的滾動條的顏色。

如果我們使用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