crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Открыть новое окно консоли для вывода
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kin63camapa Дата 9.12.2014, 20:27
  не совсем понял моя ситуация или нет я сделал так в .PRO файл добавил
CONFIG   += console
TEMPLATE += console

а в main.cpp
//всякие инклюды
#ifdef _WIN32
#include <windows.h>
#endif

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QSettings*AppSettings = new QSettings(/*у вас тут будет своя инициализация*/);
#ifdef _WIN32
    if (!AppSettings->value("ShowConsole").toBool()) FreeConsole();
#endif
    //Создаём окна
    return a.exec();
}

Номинально окно консоли появляется но в 99% запусков даже на виртуалках и медленных машинах его не успеваешь заметить
Litkevich Yuriy Дата 29.12.2013, 21:37
  Второй вариант видится более простым, тем более что так делают многие программы-архиваторы:
program.exe - основная, консольная программа
programw.exe - графический интерфейс к основной программе.
novichkov Дата 29.12.2013, 19:12
  Это просто окошко, в которое выводится результат работы консольной программы. Заморачиваться с взаимодействием типа ncurses я даже в Linux не стал.
Litkevich Yuriy Дата 29.12.2013, 18:57
  novichkov, а для чего нужна эта консоль?
это просто окошко в которое что-то печатает программа, или в него ещё что-то пользователь командовать может ?
novichkov Дата 29.12.2013, 16:26
  Да, об отдельном окне QTextEdit я не подумал. Можно и так.
Trisch Дата 29.12.2013, 11:40
  Я вот думаю, что создание нового процесса ничего не даст. Может все таки следует отказаться от этой затеи?

Или можно сделать некое подобие консоли. К примеру диалоговое окно с QTextEdit на которое будет выводится информация и куда можно вводить команды.
novichkov Дата 29.12.2013, 8:51
  Подскажите пожалуйста, как можно решить следующую проблему:

Есть 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();

Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.4.2024, 2:15