初学qt,做个记事本,怎么才能得到textedit内容的行数

初学qt,做个记事本,怎么才能得到textedit内容的行数,第1张

// QTextEdit是多行文本编辑框,自动换行的,如果你要加行号,可以根据如下API进行

QTextEdit *textEdit = new QTextEdit()

// 转换成TextDocument

QTextDocument *document = textEdit->document()

// 获取行数

int nRowcnt = document->lineCount()

所以先调用QTextEdit的toPlainText将文本存入一个QString里。然后就有多种方法了。如果必须考虑行号的话,可以调用QString的split,将数据存入一个QStringList里

法1. QTextCursor tc = fileedit_window->textCursor()//当前光标

QTextLayout *lay = tc.block().layout()

int curpos = tc.position() - tc.block().position()//当前光标在本BLOCK内的相对位置

int textline = lay->lineForTextPosition(curpos).lineNumber() + tc.block().firstLineNumber()

法2. int textline = fileedit_window->document()->lineCount()

好像是从0开始的行号,记不清了,可以调试看看。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11888219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存