Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. Aggiungere testo ad una QTextEdit alla fine di un processo
Qt 6.11 is out! See what's new in the release blog

Aggiungere testo ad una QTextEdit alla fine di un processo

Scheduled Pinned Locked Moved Solved Italian
3 Posts 2 Posters 558 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    fermatqt
    wrote on last edited by
    #1

    ciao!

    alla fine di un processo QProcess devo aggiungere un testo a quello già presente nella QTextEdit.
    per farlo ho fatto cosi:

    void MainWindow::execCmd(QString cmd) {
        ui->txtRes->clear();
        ui->txtUrl->setEnabled(false);
        ui->btnDownload->setEnabled(false);
    
        process = new QProcess();
        if (process) {
            process->setEnvironment(QProcess::systemEnvironment());
            process->setProcessChannelMode(QProcess::MergedChannels);
            process->start(cmd);
            process->waitForStarted();
            connect(process, &QProcess::readyReadStandardOutput, this, &MainWindow::readOutput);
            connect(process, &QProcess::readyReadStandardError, this, &MainWindow::readError);
        }
    }
    
    void MainWindow::processFinished(int code, QProcess::ExitStatus status) {
        ui->txtRes->setText(ui->txtRes->toPlainText() + "\n" + "TERMINATO");
        ui->txtUrl->setEnabled(true);
        ui->txtUrl->setText("");
        ui->btnDownload->setEnabled(true);
        process->kill();
    }
    
    void MainWindow::readOutput() {
        QProcess *process = dynamic_cast<QProcess*>(sender());
        if (process) {
            ui->txtRes->append(process->readAllStandardOutput());
            connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished(int, QProcess::ExitStatus)));
        }
    }
    
    void MainWindow::readError() {
        QProcess *process = dynamic_cast<QProcess*>(sender());
        if (process) {
            QPalette p = ui->txtRes->palette();
            p.setColor(QPalette::Text, Qt::red);
            ui->txtRes->setPalette(p);
            ui->txtRes->append(process->readAllStandardError());
        }
    }
    

    solo che la parola TERMINATO mi viene scritta parecchie volte.
    anche una ventina a volte, e non capisco il perchè.

    1 Reply Last reply
    0
    • mrdebugM mrdebug

      Ciao, ti consiglio di mettere tutte le connect prima dello start, compresa quella relativa all'evento finished().

      F Offline
      F Offline
      fermatqt
      wrote on last edited by
      #3

      @mrdebug said in Aggiungere testo ad una QTextEdit alla fine di un processo:

      Ciao, ti consiglio di mettere tutte le connect prima dello start, compresa quella relativa all'evento finished().

      si infatti il problema era quello.
      grazie!!

      1 Reply Last reply
      0
      • mrdebugM Offline
        mrdebugM Offline
        mrdebug
        wrote on last edited by
        #2

        Ciao, ti consiglio di mettere tutte le connect prima dello start, compresa quella relativa all'evento finished().

        Need programmers to hire?
        www.labcsp.com
        www.denisgottardello.it
        GMT+1
        Skype: mrdebug

        F 1 Reply Last reply
        0
        • mrdebugM mrdebug

          Ciao, ti consiglio di mettere tutte le connect prima dello start, compresa quella relativa all'evento finished().

          F Offline
          F Offline
          fermatqt
          wrote on last edited by
          #3

          @mrdebug said in Aggiungere testo ad una QTextEdit alla fine di un processo:

          Ciao, ti consiglio di mettere tutte le connect prima dello start, compresa quella relativa all'evento finished().

          si infatti il problema era quello.
          grazie!!

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved