如何在不获取所有html的情况下获取QTextEdit的html标签?
How to get QTextEdit's html tags without getting all of the html?
我有一个QTextEdit,我正在其中存储一个名为m_text的变量中的一些文本。文本存储在那里,如:
<ui><center>Info Plot</center><ui> <br> <table> <tr> <td> Name: </td> <td> 50A40 </td> </tr>
等…
不管怎样,这就是存储在m_text中的内容,它本质上是我需要的文本加上一些html,使其以我想要的方式显示,使用表格、一些下划线等。
我使用setText(m_text)在QTextEdit上设置文本,将变量中的内容准确存储到编辑文本中。我的问题是,我如何才能重新获得确切的文本,也许需要添加一些用户(比如他们想更改一下)?toPlainText()返回除html标记之外的所有内容,toHtml()返回一个巨大的字符串,其中包含我不需要或不想要的内容(如果可能的话,我不想搜索)。
我已经使用这些基本结构标记(如表)作为模板编写了我的整个代码,用于获取某些信息和更改其他信息,因此,如果可以的话,我希望保持我的做法。
我有没有办法像从m_text
设置一样,把所有的数据+我放进去的标签都拿出来?
编辑:
#include <QDialog>
class plotInfoDialog : public QDialog
{
public:
plotInfoDialog();
void setQTextEdit();
void getFreeTextEditText();
public slots:
void editChange();
private:
QString m_text;
};
plotInfoDialog::plotInfoDialog() {
m_ui = new Ui::plotInfoDialog();
m_ui->setupUi(this);
this->show();
m_text = "<u> <center>Plot Info</center> </u> <br><table><tr><td>Name: </td><td> #BASENAME#</td></tr><tr><td>Date: </td><td>#DATE# </td></tr><tr><td>Time: </td><td>#TIME# </td></tr><tr><td>Radar: </td><td>#RADAR#</td></tr><tr><td>Polarization: </td><td> #P#</td></tr><tr><td>Range: </td><td>#RANGE# </td></tr><tr><td>Elevation: </td><td> #ELEV# </td></tr></table>";
setQTextEdit();
connect(m_ui->FreeTextEdit->document(), SIGNAL(contentsChange(int,int,int)), this, SLOT(editChange(int,int,int)));
}
void plotInfoDialog::setQTextEdit() {
m_ui->FreeTextEdit->setText(m_text);
}
void plotInfoDialog::editChange(int pos, int del, int add)
{
//update m_text with changes in FreeTextEdit here
}
void plotInfoDialog::getFreeTextEditText() {
m_text = //get text from FreeTextEdit here
}
实际上,当您使用setText()
和toPlainText()
询问文本时,返回的字符串会维护您的HTML标记。
但在您的情况下,QTextEdit
中的字符串被转换为HTML。因此,toPlainText()
返回的字符串缺少所有HTML标记。查找QTextEdit
的所有引用,并查看正在进行HTML转换的任何位置。
备选方案是:
使用QPlainTextEdit
,如果你根本不想要HTML,我的意思是你的标签会被很好地保留下来。
请按照下面的说明进行尝试。
设置文本
QPlainTextEdit *textEdit = new QPlainTextEdit();
QString m_text = "<ui><center>Info Plot</center><ui> <br> <table> <tr> <td> Name: </td> <td> 50A40 </td> </tr>";
textEdit->document()->setPlainText(m_text);
要取回文本
m_text = textEdit->toPlainText();
- 如何使用 libcurl 在本地 IP 上获取 HTML?
- 检查HTML 5视频元素是否正在获取帧
- 使用 Lamda 从 QWebEngineView 中的 QWebEnginePage 获取 HTML
- 如何在不获取所有html的情况下获取QTextEdit的html标签?
- Qt QNetworkAccessManager 或其他方法获取 html 状态代码而不获取页面 contenet
- 在Javascript服务器应用程序之后获取HTML
- 如何解析html并获取信息
- 使用 Win32 在 c++ 窗口中获取 HTML 输出
- 通过 CGI 获取 html 提交按钮的名称
- 获取 html 代码时出错
- 获取网站的HTML
- 试图获取位于tar文件中的html文件的内容
- 在字符串中获取 HTML 的最简单方法是什么?
- 获取在c++中用HTML表单发送的POST参数
- 从IE DOM获取HTML头
- 用于获取HTML表内容的正则表达式
- 使用Visual Studio获取url链接的HTML
- C++从html代码中获取链接
- 如何在NPAPI中获取iframe html文档
- 如何从HTML页面获取字符集