qtextedit selectedtext()返回控制字符

时间:2017-10-04 07:57:18

标签: qt qtextedit

我有函数只从qtextedit返回所选文本。 我需要获取纯文本,但此函数返回带有一些控制字符的文本。

例如: function textEdit-> textCursor()。selectedText()return:

"select?  timestamp,?  strftime('%d.%m.%Y', Datetime(timestamp, 'unixepoch', 'localtime')) as date,?  strftime('%H:%M:%S', Datetime(timestamp, 'unixepoch', 'localtime')) as time,?  author,?  from_dispname,?  dialog_partner,?  body_xml?from?  Messages?where?  timestamp >= 1501504199?  -- timestamp >= 1502345001?order by?  timestamp asc"

function textEdit-> toPlainText()return:

"select\n  timestamp,\n  strftime('%d.%m.%Y', Datetime(timestamp, 'unixepoch', 'localtime')) as date,\n  strftime('%H:%M:%S', Datetime(timestamp, 'unixepoch', 'localtime')) as time,\n  author,\n  from_dispname,\n  dialog_partner,\n  body_xml\nfrom\n  Messages\nwhere\n  timestamp >= 1501504199\n  -- timestamp >= 1502345001\norder by\n  timestamp asc"

在第一个例子中是没有输入的?(问号),我无法替换它们。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

将评论作为答案包装起来:

正如QTextCursor::selectedText所述的文件:

  

注意:如果从编辑器获得的选择跨越换行符,则   文本将包含Unicode U + 2029段落分隔符   而不是换行符\ n字符。使用QString :: replace()替换   带有换行符的这些字符。

在调试输出中显示时显示为?。可以使用文档中所述的QString::replace,也可以使用QTextCursor::selection代替(使用selection().toPlainText()从选择中获取文字)