2011-11-13 19 views
3

私はQPlainTextEditの各行をとり、それらのURLをロードするWebViewに送信するプログラムを作りたいと思います。ようになりますforeachループを使用しQtでQPlainTextEditの各行を読み取る方法は?

  1. :システムはその

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

    ようにそれを作るので、私は私が使用する方法がわからないいくつかのアイデアを持っているURLのをチェックする必要はありません。その自己はQTimerが5秒のように待機して整数でカチカチと整数は行数に当たったとき、それは

を停止し、そのすべてがオンに行われるために作るループ再び

  • から5秒待ち4時間ごとに別のタイマーで待機します。

  • +0

    "私はQPlainTextEditの各行を取って、それらのURLをロードするWebViewに送信するプログラムを作りたいと思っています。"あなたは私が入力したものを読まないでください – user1044359

    答えて

    6

    まず、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タイマーでも同じことをします。

    +0

    ありがとう – user1044359

    関連する問題