Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取qtexdit';s html标记而不获取所有html?_Html_C++_Qt - Fatal编程技术网

如何获取qtexdit';s html标记而不获取所有html?

如何获取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上设置文本,将变量中的内容准确地存储到编辑文本中。我的问题是,我如何才能得

我有一个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上设置文本,将变量中的内容准确地存储到编辑文本中。我的问题是,我如何才能得到确切的文本回来,可能与一些用户添加(说他们想改变它一点)?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();