如何获取qtexdit';s html标记而不获取所有html?
我有一个QTextEdit,我在其中存储了一个名为m_text的变量中的一些文本。文本存储在其中,如下所示:如何获取qtexdit';s html标记而不获取所有html?,html,c++,qt,Html,C++,Qt,我有一个QTextEdit,我在其中存储了一个名为m_text的变量中的一些文本。文本存储在其中,如下所示: ui>center>Info Plot/center>ui>br>table>tr>td>Name:/td>td>50A40/td>/tr>等 这是存储在m_文本中的内容,基本上是我需要的文本,加上一些html,使其以我想要的方式显示,使用表格,一些下划线等 我使用setText(m_text)在QTextEdit上设置文本,将变量中的内容准确地存储到编辑文本中。我的问题是,我如何才能得
ui>center>Info Plot/center>ui>br>table>tr>td>Name:/td>td>50A40/td>/tr>
等
这是存储在m_文本中的内容,基本上是我需要的文本,加上一些html,使其以我想要的方式显示,使用表格,一些下划线等
我使用setText(m_text)在QTextEdit上设置文本,将变量中的内容准确地存储到编辑文本中。我的问题是,我如何才能得到确切的文本回来,可能与一些用户添加(说他们想改变它一点)?toPlainText()返回除html标记之外的所有内容,toHtml()返回一个包含大量我不需要或不想要的内容的字符串(如果可能的话,我希望不必搜索)
我已经使用这些基本结构标记(如table)作为模板编写了我的整个代码,用于获取某些信息并更改其他信息,因此如果可以,我希望保持我的方式
我是否可以得到所有的数据和我放进去的标签,就像从m_text
中设置的那样
编辑:
#包括
类plotInfoDialog:公共QDialog
{
公众:
plotInfoDialog();
void setqtexdit();
void getFreeTextEditText();
公众时段:
void editChange();
私人:
QString m_文本;
};
plotInfoDialog::plotInfoDialog(){
m_ui=新ui::plotInfoDialog();
m_ui->setupUi(本);
此->显示();
m#text=“Plot Info
Name:#BASENAME#Date:#Date#Time:#Time#Radar:#Radar#Polarization:#P#Range:#Range#ELEV#”;
setqtexdit();
连接(muui->FreeTextEdit->document(),信号(contentsChange(int,int,int)),这个,插槽(editChange(int,int,int));
}
void plotInfoDialog::setQTextEdit(){
m_ui->FreeTextEdit->setText(m_text);
}
void plotInfoDialog::editChange(int pos、int del、int add)
{
//使用FreeTextEdit中的更改更新m_文本
}
void plotInfoDialog::getFreeTextEditText(){
m_text=//在此处从FreeTextEdit获取文本
}
实际上,当您使用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);
显示你的代码。代码很长,我不确定你需要看什么。这是设置QTextEdit的地方:m_ui->FreeTextEdit->setText(m_text);m#U文本在整个代码中不断变化,但它最初设置为:“绘图信息
名称:#基本名称#日期:#日期#时间:#时间#雷达:#极化:#P#范围:#范围#高程:#ELEV,包括所有这些标签,但不包括我不需要的东西,如字体大小等。你必须提供一个标签。我知道这没有多大帮助,但是有很多代码,而且是为我工作的公司编写的,所以我不应该分享其中的大部分。任何帮助都将不胜感激,因为我真的不知道如何着手解决这个问题。好的,谢谢。如果我能在实际使用html的同时拿回html标记,我会更喜欢它,但因为看起来没有办法做到这一点,我想我只需要添加两个显示,一个用于编辑(明文编辑),另一个用于查看完成的文本,使用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();