
因为要对一段字符串进行多次处理,为了避免多次刷新UI带来的负担,肯定是先将数据读入内存,进行处理,然后一次性更新UI。
所以先调用QTextEdit的toPlainText将文本存入一个QString里。然后就有多种方法了。如果必须考虑行号的话,可以调用QString的split,将数据存入一个QStringList里,这样就可以得到一个QString的链表,每个节点一行,可以快速定位到任意一行。最后处理完是可以调用QStringList的join生产一个QString,再调用QTextEdit的setPlainText存入文本框。
PS:是\n还是\r\n试试就知道了,空格肯定是算的
文本框是QLineEdit还是QTextEdit?
1、获取文本内容:
如果是QLineEdit调用text()即可,如果是QTextEdit可调用 toPlainText()
QString qsText = lineEdit->text();
或QString qsText = textEdit->text();
2
label->setText( qsText );
// QTextEdit是多行文本编辑框,自动换行的,如果你要加行号,可以根据如下API进行
QTextEdit textEdit = new QTextEdit();
// 转换成TextDocument
QTextDocument document = textEdit->document();
// 获取行数
int nRowcnt = document->lineCount();
void MainWindow::slotFind(){
QString findtxt = editFind->text();
if(findtxtisEmpty()){
QMessageBox::warning(this,tr("warning"),tr("No input"));
}else{
text->moveCursor(QTextCursor::Start);
if(!text->find(findtxt)){
QMessageBox::StandardButton btn;
btn = QMessageBox::information(this,tr("Find"),"cannot find,"+findtxt+"\ntry again ",QMessageBox::Ok,QMessageBox::Abort);
if(btn == QMessageBox::Ok){
text->moveCursor(QTextCursor::Start);
slotFind();
}
}
}
}
这是我写的方法,至于LZ另外的需求应该很容易实现了。。。
QString get = this->uitextEdit->text();
if(get[getsize()-1]=='\n')
{
QString cmd;
cmdclear();
for(int i = getsize()-2;i>=0;i--)
{
if(get[i] == '\n')
{
break;
}
cmd =get[i]+cmd;
}
num1 = cmdtoInt();
}
我以前正好写过一个类似的,不过就是需要读出最后一行,你可以把这个循环加长一点点就可以解决了。有时候text()函数会不出现,你可以使用topaintext……好像是这么写吧~
下面只是给出一段演示代码,你需要根据实际情况进行修改
QTextEdit editer;
editersetText("abcdef");
//获取当前文本光标
QTextCursor cursor = editertextCursor();
//将光标移动到文本结尾,便于删除字符测试,实际上并不需要该步骤
cursormovePosition(QTextCursor::End);
//判断当前是否选中了文本,如果选中了文本则取消选中的文本,再删除前一个字符
if(cursorhasSelection())
cursorclearSelection();
//删除前一个字符
cursordeletePreviousChar();
//设置当前的光标为更改后的光标
editersetTextCursor(cursor);
editershow();
用两个窗口啊,上面一个只是输入命令的,下面一个显示输入命令和返回结果,这样比较容易。
如果用一个,就用追加,自定义一个命令提示符,显示命令提示符时才可以输入命令,其他情况时,文本框为只读,当命令执行完,返回时,再显示命令提示符。运行结果也追加到文本中。好像是Append方法,我记得是有追加方法的。
以上就是关于QT textedit实现查找替换全部的内容,包括:QT textedit实现查找替换、用QT如何实现把文本框的中文内容显示在标签上 要完整一点的程序哦,急急急 啊、初学qt,做个记事本,怎么才能得到textedit内容的行数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)