我想制作一个程序,在其中获取 QPlainTextEdit 的每一行并将其发送到将加载这些 url 的 WebView。我不需要检查 URL,因为系统是这样设置的

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

我有一些我不知道如何使用的想法:
  • 使用 foreach 循环,使其自身等待 5 秒再次循环
  • 使 QTimer 等待 5 秒并用整数打勾,当整数达到行数时,它将停止

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

    最佳答案

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

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

    处理这些行的最简单方法是使用 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 计时器执行相同操作。

    关于qt - 如何在 Qt 中读取 QPlainTextEdit 的每一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8113078/

    10-13 00:15