当前位置:  开发笔记 > 前端 > 正文

如何在Qt中读取QPlainTextEdit的每一行?

如何解决《如何在Qt中读取QPlainTextEdit的每一行?》经验,为你挑选了1个好方法。

我想创建一个程序,我将每行QPlainTextEdit发送到WebView,它将加载这些URL.我不需要检查URL,因为系统就是这样

http://someurl.com/ + each line of the QPlainTextEdit

我有一些我不知道如何使用的想法:

    使用foreach循环,使其自我等待5秒钟再次循环

    让QTimer等待5秒并用整数打勾,当整数达到它将停止的行数时

所有这些都将通过等待另一个计时器每4小时完成.



1> pnezis..:

首先,你需要的内容QPlainTextEdit.获取它们并使用新行分隔符将它们拆分,以获得QStrings每个代表一行的列表.

QString plainTextEditContents = ui->plainTextEdit->toPlainText()
QStringList lines = plainTextEditContents.split("\n");

处理这些行的最简单方法是使用a QTimer并存储列表中当前索引的某个位置.

// Start the timer
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(processLine()));
timer->start(5000);

现在,只要触发定时器,就会调用插槽.它只是得到当前的行,你可以随心所欲地做到这一点.

void processLine(){
   // This is the current index in the string list. If we have reached the end
   // then we stop the timer.
   currentIndex ++;

   if (currentIndex == lines.count())
   {
       timer.stop();
       currentIndex = 0; 
       return;
   }

   QString currentLine = lines[currentIndex];
   doSomethingWithTheLine(currentLine); 
}

同样地用4h计时器做同样的事情.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有