Russian Qt Forum
Ноябрь 25, 2024, 23:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Консольное приложение без консоли  (Прочитано 10686 раз)
qtист
Гость
« : Июнь 01, 2009, 14:42 »

Надо чтоб в консольном приложении не выскакивало
это гадское чёрное окно.
Это реально?
Записан
spectre71
Гость
« Ответ #1 : Июнь 01, 2009, 14:51 »

А подробнее можно?
Записан
qtист
Гость
« Ответ #2 : Июнь 01, 2009, 14:57 »

Создан проект Qt Console Application - мне интерфейс не нужен.
 При запуске ессно появляется консоль, то бишь черное окно.
Надо его подавить - чтоб не появлялось совсем. Непонимающий
Записан
spectre71
Гость
« Ответ #3 : Июнь 01, 2009, 15:05 »

Не делал Qt Console Application - по нему ничего не скажу

Но, сделай обычное приложение, и:

Код
C++ (Qt)
int main(int argc, char *argv[])
{
 QApplication a(argc, argv);
 
 // Do something
 
 return 0;
//  return a.exec();
}
 
Должно все получиться
Записан
qtист
Гость
« Ответ #4 : Июнь 01, 2009, 15:13 »

Пытался:
Код
C++ (Qt)
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
 
   if(argc<=1) return 0;
   myClient * Client = new myClient(argv[1],argv[2],argv[3],argv[4],argv[5]);
   Client->RecFile();
 
   return 0;
 // return a.exec();
}

Класс myClient содержит дохрена всего,в частности всякие там сигналы,слоты
и прочую хрень.
Так они не выполняются - приложение выходит сразу на return 0; Плачущий

Записан
spectre71
Гость
« Ответ #5 : Июнь 01, 2009, 15:28 »

Класс myClient содержит дохрена всего,в частности всякие там сигналы,слоты
и прочую хрень.
Так они не выполняются - приложение выходит сразу на return 0; Плачущий
так ты не выходи из
    Client->RecFile();
пока не закончишь обработку.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Июнь 01, 2009, 15:39 »

2 qtист: а зачем ты return a.exec(); закаментил?

Также взгляни на:

Цитировать
QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled )

Constructs an application object with argc command line arguments in argv. If GUIenabled is true, a GUI application is constructed, otherwise a non-GUI (console) application is created.

но думаю  QCoreApplication будет придостаточно
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
spectre71
Гость
« Ответ #7 : Июнь 01, 2009, 15:47 »

2 qtист: а зачем ты return a.exec(); закаментил?

Закаментил его не он, а я. У него нет окон(надеюсь, иначе зачем бы понадобилось Console Application) a.exec(); сразу выйдет;

QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled )
Так проблема как раз в Console Application
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #8 : Июнь 01, 2009, 15:57 »

Закаментил его не он, а я. У него нет окон(надеюсь, иначе зачем бы понадобилось Console Application) a.exec(); сразу выйдет;

Неверно. Окон у него нет, но есть

Цитировать
Класс myClient содержит дохрена всего,в частности всякие там сигналы,слоты и прочую хрень.

И к тому же, с чего ты взял что exec в консольном приложении сразу завершит работу?

Так проблема как раз в Console Application

А что я нетак написал? У человека проблема в том что выскакивает "гадское чёрное окно". Если задать 3 параметромом "false", то будет тоже консольное приложение.
« Последнее редактирование: Июнь 01, 2009, 21:08 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
qtист
Гость
« Ответ #9 : Июнь 01, 2009, 16:03 »

Заменил
QCoreApplication a(argc, argv) на     QApplication a(argc, argv,false)

Не линкуется- грязно ругается,шо найдена неразрешенные внешние ссылки.
 Плачущий
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #10 : Июнь 01, 2009, 16:08 »

2 qtист: Проверь, есть ли у тебя в профайле строка

CONFIG += console

если есть, удали. Если нету, попробуй написать

CONFIG -= console


Цитировать
Не линкуется- грязно ругается,шо найдена неразрешенные внешние ссылки.


QApplication тянет за собой QtGui, но в твоем случае с головой хватит QCoreApplication
« Последнее редактирование: Июнь 01, 2009, 16:10 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
spectre71
Гость
« Ответ #11 : Июнь 01, 2009, 16:09 »

Правильно.
Из exec() он не выйдет пока не вызовет exit().

Прекомментируем.
Если "// Do something" просто последовательный код, то лучше "return 0;"

Код
C++ (Qt)
int main(int argc, char *argv[])
{
 QApplication a(argc, argv);
 
 // Do something
 
//  return 0;
 return a.exec();
}
Записан
qtист
Гость
« Ответ #12 : Июнь 01, 2009, 16:15 »

2 qtист: Проверь, есть ли у тебя в профайле строка

CONFIG += console

если есть, удали. Если нету, попробуй написать

CONFIG -= console

Пишу в VS2008,коммерческая версия QT 4.5
Где это профайл здесь взять?
Записан
spectre71
Гость
« Ответ #13 : Июнь 01, 2009, 16:28 »

2 qtист: Проверь, есть ли у тебя в профайле строка

CONFIG += console

если есть, удали. Если нету, попробуй написать

CONFIG -= console

Пишу в VS2008,коммерческая версия QT 4.5
Где это профайл здесь взять?

У меня VS2005:

Console (/SUBSYSTEM:CONSOLE)
меняешь
на Windows (/SUBSYSTEM:WINDOWS)
Записан
qtист
Гость
« Ответ #14 : Июнь 01, 2009, 16:41 »

spectre71  - получилось Строит глазки(к тому же эта утилита будет работать только под Win)
благодарность моя не имеет границ  Смеющийся Смеющийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.258 секунд. Запросов: 23.