![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
novichkov |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 64 Регистрация: 20.3.2008 Из: Северодвинск Пользователь №: 128 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Подскажите пожалуйста, как можно решить следующую проблему:
Есть command-line interface к моей программе. В Linux он работает отлично. В зависимости от параметров командной строки программа запускается либо как консольная, либо с графическим интерфейсом. Но в Windows, как известно, программы Qt с графическим интерфейсом не дружат с консолью (вывод программы "съедается"), если явно не задать CONFIG += console. Однако при этом появляется назойливое окно, ненужное большей частью. Мне хотелось бы и сохранить нормальный графический интерфейс, и дать возможность использовать программу из консоли. Я вижу здесь три пути: 1. полностью убрать CLI из Windows-версии. 2. Разделить программу на две - одну с графическим, одну чисто консольную. 3. Запускать отдельное окно консоли, в которое и выводить вывод программы (как lupdate/lrelease в Windows). Вопрос: как мне сделать последний вариант? Простой запуск cmd.exe в QProcess и попытки писать в него ничего не дают. Может, я что-то упускаю?
|
|
|
Trisch |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: ![]() ![]() ![]() |
Я вот думаю, что создание нового процесса ничего не даст. Может все таки следует отказаться от этой затеи?
Или можно сделать некое подобие консоли. К примеру диалоговое окно с QTextEdit на которое будет выводится информация и куда можно вводить команды. |
|
|
novichkov |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 64 Регистрация: 20.3.2008 Из: Северодвинск Пользователь №: 128 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Да, об отдельном окне QTextEdit я не подумал. Можно и так.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
novichkov, а для чего нужна эта консоль?
это просто окошко в которое что-то печатает программа, или в него ещё что-то пользователь командовать может ? |
|
|
novichkov |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 64 Регистрация: 20.3.2008 Из: Северодвинск Пользователь №: 128 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Это просто окошко, в которое выводится результат работы консольной программы. Заморачиваться с взаимодействием типа ncurses я даже в Linux не стал.
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Второй вариант видится более простым, тем более что так делают многие программы-архиваторы:
program.exe - основная, консольная программа programw.exe - графический интерфейс к основной программе. |
|
|
kin63camapa |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 32 Регистрация: 21.8.2010 Пользователь №: 1976 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
не совсем понял моя ситуация или нет я сделал так в .PRO файл добавил
а в main.cpp
Номинально окно консоли появляется но в 99% запусков даже на виртуалках и медленных машинах его не успеваешь заметить Сообщение отредактировал kin63camapa - 9.12.2014, 20:30 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 18.2.2025, 11:17 |