Частенько нужно написать GUI к уже готовой программе имеющей консольный интерфейс.
В Qt эта задача существенно упрощена. Нам понадобится всего несколько строк кода для вывода результат работы программы в форму.
Итак. Сначала создадим какой нибудь «hello world» и откомпилируем его:
#include <iostream> using namespace std; int main(int argc,char **argv) { cout << "Hello world!" << endl; return 0; }
Я использую linux, так что откомпилировал так:
g++ prog.cpp -o prog
Если у вас Windows создайте проект в студии и запаситесь бинарником prog.exe.
Теперь приступим к созданию собственно Qt приложения.
Подключим необходимые заголовочные файлы:
#include <QApplication> #include <QProcess> #include <QTextEdit>
В функции main нашего приложения создадим идентификатор приложения и объект QProcess:
QApplication a(argc, argv); QProcess pr;
Запускаем нашу консольную утилиту:
pr.start("./prog"); //таким образом необходимо положить исполняемый файл в папку билда приложения на qt
Обратите внимание, что Windows пользователи должны указать приложение примерно так (точно не скажу.. давно это было):
pr.start("prog.exe");
Создаём поле в которое будет выведен результат:
QTextEdit edit;
Ждём пока процесс не завершится:
if (pr.waitForFinished() == true) { QByteArray b = pr.readAll(); //читаем вывод edit.setText(QString(b)); //конвертируем в строковый формат и выводим в поле }
Показываем поле и ждём действий пользователя:
edit.show(); return a.exec();
Можете попробовать также вывести информацию о каталоге при помощи команды dir (есть она по моему во всех ОС)
pr.start("dir");
Вперёд писать GUI к очередной консольной утилите.
Скачать проект.