我有函数只从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"
在第一个例子中是没有输入的?(问号),我无法替换它们。
我做错了什么?
答案 0 :(得分:2)
将评论作为答案包装起来:
正如QTextCursor::selectedText
所述的文件:
注意:如果从编辑器获得的选择跨越换行符,则 文本将包含Unicode U + 2029段落分隔符 而不是换行符\ n字符。使用QString :: replace()替换 带有换行符的这些字符。
在调试输出中显示时显示为?
。可以使用文档中所述的QString::replace
,也可以使用QTextCursor::selection
代替(使用selection().toPlainText()
从选择中获取文字)