【发布时间】:2015-10-05 09:25:16
【问题描述】:
我正在 qt 上编写一个文本编辑器,但遇到了保存文件更改的问题。我使用rich texedit对颜色进行更改,但是当我更改所选单词的颜色并保存文件时,它不会保存颜色更改。
我知道我可以制作像 config.txt 文件这样的东西,应用程序可以在其中自动进行更改,但这会进行全局更改,我想为每个单独的文件保存更改。
可以吗?
备注: Word office 可以保存单独的更改,因此 1.doc 和 2.doc 的格式不同。
void MainWindow::on_actionFont_triggered()
{
bool ok;
QFont font = QFontDialog::getFont(&ok,QFont("Palatino Linotype",12,QFont::Normal),this);
if(ok)
ui->textEdit->setFont(font);
}
void MainWindow::on_actionText_Color_triggered()
{
QColor color = QColorDialog::getColor(Qt::white,this);
if(color.isValid())
ui->textEdit->setTextColor(color);
}
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);
}
【问题讨论】:
-
请澄清您的问题:您使用的 Qt Widget 是什么?你如何应用颜色变化?您如何尝试保存文件?
-
关于您的评论:*.doc 不是“只是一个文件”。您可以解压缩 *.doc 并查看它是由几个文件组成的。如果您进一步观察,您会发现格式等内容保存在 xml 结构中。
-
设置调色板来改变文本颜色真的不是你应该走的路。这用于设置小部件中所有文本的默认颜色。要为单个单词着色,您确实应该切换到 html。见stackoverflow.com/q/2857864/2927205
标签: qt