Есть command-line interface к моей программе. В Linux он работает отлично. В зависимости от параметров командной строки программа запускается либо как консольная, либо с графическим интерфейсом. Но в Windows, как известно, программы Qt с графическим интерфейсом не дружат с консолью (вывод программы "съедается"), если явно не задать CONFIG += console. Однако при этом появляется назойливое окно, ненужное большей частью. Мне хотелось бы и сохранить нормальный графический интерфейс, и дать возможность использовать программу из консоли.
Я вижу здесь три пути: 1. полностью убрать CLI из Windows-версии.
2. Разделить программу на две - одну с графическим, одну чисто консольную.
3. Запускать отдельное окно консоли, в которое и выводить вывод программы (как lupdate/lrelease в Windows).
Вопрос: как мне сделать последний вариант? Простой запуск cmd.exe в QProcess и попытки писать в него ничего не дают. Может, я что-то упускаю?
QProcess *p = new QProcess(this);
p->start("cmd.exe");
qDebug()<<p->waitForStarted();
p->write("simple string");
qDebug()<<p->waitForBytesWritten();