如何使用QTextCursor选择表

时间:2014-04-24 08:43:13

标签: qt qtextedit qtextdocument qtextcursor

我希望这段代码能够正常运行,但它并不是

QTextCursor cursor = textEdit->textCursor();
cursor = QTextCursor(cursor.currentFrame());
cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
textEdit->setTextCursor(cursor);
textEdit->copy(); // Here I got only text from current cell, not a table

1 个答案:

答案 0 :(得分:0)

QTextEdit或QTextDocument中的QTextTable单元格由QTextBlock本身表示。

您的示例代码确实将光标的位置移动到当前块的末尾,这只是单元格内容的结尾。

要选择表格的全部内容,您需要选择所有单元格。

这应该有效:

    cursor.movePosition( QTextCursor::Start);

    while( cursor.movePosition( QTextCursor::NextCell, QTextCursor::KeepAnchor ) ){
        //...add break condition as failsafe after n iterations?
    }

请注意,您可以使用以下方式查询选择:

cursor.selectedText();