小智 32
该只为我工作的事情是HTML.
代码片段如下.
QString line = "contains some text from somewhere ..."
:
:
QTextCursor cursor = ui->messages->textCursor();
QString alertHtml = "<font color=\"DeepPink\">";
QString notifyHtml = "<font color=\"Lime\">";
QString infoHtml = "<font color=\"Aqua\">";
QString endHtml = "</font><br>";
switch(level)
{
case msg_alert: line = alertHtml % line; break;
case msg_notify: line = notifyHtml % line; break;
case msg_info: line = infoHtml % line; break;
default: line = infoHtml % line; break;
}
line = line % endHtml;
ui->messages->insertHtml(line);
cursor.movePosition(QTextCursor::End);
ui->messages->setTextCursor(cursor);
Run Code Online (Sandbox Code Playgroud)
bad*_*err 27
只是一个快速添加:如果您以编程方式填充文本框,则自行生成html的替代方法是使用textEdit->setTextColor(QColor&).您可以自己创建QColor对象,或使用Qt命名空间中的一种预定义颜色(Qt :: black,Qt :: red等).它会将指定的颜色应用于您添加的任何文本,直到使用不同的文本再次调用它.
mos*_*osg 24
使用格式化为HTML的文本,例如:
textEdit->setHtml(text);
Run Code Online (Sandbox Code Playgroud)
其中的文字,是HTML格式化文本,用彩色线条等含有
小智 11
一些引言:
QTextEdit是一个高级的WYSIWYG查看器/编辑器,支持使用HTML样式标签的富文本格式.它经过优化,可以处理大型文档并快速响应用户输入.
.
文本编辑可以加载纯文本和HTML文件(HTML 3.2和4的子集).
.
QTextEdit可以显示大型HTML子集,包括表格和图像.
这意味着大多数已弃用的标签,因此不包括任何当前的CSS,所以我转向:
// save
int fw = ui->textEdit->fontWeight();
QColor tc = ui->textEdit->textColor();
// append
ui->textEdit->setFontWeight( QFont::DemiBold );
ui->textEdit->setTextColor( QColor( "red" ) );
ui->textEdit->append( entry );
// restore
ui->textEdit->setFontWeight( fw );
ui->textEdit->setTextColor( tc );
Run Code Online (Sandbox Code Playgroud)
QTextEdit::append()使用先前设置的FontWeight/TextColor插入新段落.
insertHTML()或者InsertPlainText()为了避免插入新的段落(例如,在一行中实现不同的格式),不要考虑字体/颜色设置.
而是使用QTextCursor:
...
// textEdit->moveCursor( QTextCursor::End );
QTextCursor cursor( textEdit->textCursor() );
QTextCharFormat format;
format.setFontWeight( QFont::DemiBold );
format.setForeground( QBrush( QColor( "black" ) ) );
cursor.setCharFormat( format );
cursor.insertText( "Hello world!" );
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58331 次 |
| 最近记录: |