Qt现实QTextEdit内容同步到QTextBrowaer中

Qt中如何实现Qtextedit控件的内容实时同步到Qtextbrowser中?

文本传递
QTextEdit
QTextBrowser

QTextBrowser类继承自QTextEdit,但从运行结果也能看出,光标无法打入QTextBrowser框里,即QTextBrowser里面的内容并不能进行更改,但是相对于QTextEdit来讲,具有链接文本的作用。
这里我们试着实现一个简单的编辑、预览模型。

效果如下图:
Qt现实QTextEdit内容同步到QTextBrowaer中_第1张图片
首先将创建两个控件创建出来并设置它们的大小和位置:

    QTextEdit *te=new QTextEdit(this);
    te->resize(100,200);
    QTextBrowser *tb=new QTextBrowser(this);
    tb->resize(100,200);
    tb->move(104,0);

然后使用信号和槽机制,当QTextEdit发出文本内容改变的信号时,QTextBrowser通过settext将QTextEdit的内容设置为,自己的文本内容:

    connect(te,&QTextEdit::textChanged,[=](){
        tb->setText(te->toPlainText());
    });  

这里使用lambda表达式做为响应文本内容改变的槽函数。
值得一提的是:QTextBrowser控件可以解析HTML代码。如:我们在QTextEdit中输入如下代码:


<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Documenttitle>
head>
<body>
	<h1>我是标题1h1>
body>
html>

便能得到这样的显示效果:

Qt现实QTextEdit内容同步到QTextBrowaer中_第2张图片

你可能感兴趣的:(Qt)