Problem sending command to terminal with QProcess
- 
I am currently using Fedora 23 and QT 5.6. I am building a command for Hping3 and trying to send that command to the terminal and receive the results upon a button push. I can get the terminal to open but I can not get it to receive any commands. I am very new to QT so my knowledge is minimal. I learned programming with Visual Basic so I understand logic but this syntax is killing me. Qt Code: //Sending the command to terminal QProcess proc; proc.start("/usr/bin/gnome-terminal"); proc.waitForStarted(); proc.write("su"); proc.write("ite"); //proc.write(command); proc.waitForFinished(); QByteArray output = proc.readAll(); proc.close(); ui->dgvResults->setText(output);I am trying to display in a QTextBrowser and Commented out that one write command because I am getting an error /home/itestudent/SeniorProject/frmmain.cpp:112: error: no matching function for call to 'QProcess::write(QString&)' 
 proc.write(command);
 ^Command is declared at the top of the button push event 
 QString command = "hping3 -S ";Any help would be great 
- 
hi and welcome 
 the write seems to want a const char * so try with
 p.write(command .toStdString().c_str());( you give it QString& and it dont want a QString) 
- 
Hi and welcome to devnet, Since you only want the result, are you sure you need the gnome-terminal ? Or is to enter su's password ? Use QByteArray for commandin place of QString.
- 
Hi and welcome to devnet, Since you only want the result, are you sure you need the gnome-terminal ? Or is to enter su's password ? Use QByteArray for commandin place of QString.@SGaist I was trying to get into the su because sudo was not working. Now i figured out how to fix sudo so I am trying to send echo ite | sudo -S hping3 -S -c 5 <portNumber> <IPAdress> to the bash. My code waits like it is processing the command but I can not get it to update the text box(dgvResults). If i change the text box(dgvResults) to a simple string it will output that though. The code that I have so far is QProcess proc; 
 proc.start("/bin/bash");proc.waitForStarted(); proc.execute(command); proc.waitForFinished(); QByteArray output = proc.readAll(); proc.close(); ui->dgvResults->setText(output);
- 
I just want to thank you for the help. I just found another thread that had exactly what I needed. I swear I tried this before and it didn't work but somehow it does now QProcess proc; 
 proc.start("/bin/bash", QStringList() << "-c" << command);proc.waitForFinished(); QByteArray output = proc.readAll(); proc.close(); ui->dgvResults->setText(output);Again thank you for the responses they were very helpful 
- 
Glad you found out and thanks for sharing ! Since you have it working now, please mark the thread as solved using the "Topic Tool" button so that other forum users may know a solution has been found :) 
