QT textedit实现查找替换

QT textedit实现查找替换,第1张

因为要对一段字符串进行多次处理,为了避免多次刷新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内容的行数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://www.54852.com/web/9730055.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存