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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как сделать одновременно консольное и GUI приложение ?  (Прочитано 10739 раз)
admsasha
Гость
« : Июль 16, 2013, 16:48 »

Как сделать приложение и консольным и GUI ? Например, по умолчанию оно консольное, а когда указан параметр -gui, открывать QWidget. Так вообще возможно ?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июль 16, 2013, 17:28 »

по идее оно: QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled ). в документации к этому конструктору и пример есть.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #2 : Июль 16, 2013, 17:31 »

По идее нет консольного приложения с GUI.

Но есть GUI с консолью. Линковаться всё равно с QtGui будет ^.^
Записан
thechicho
Гость
« Ответ #3 : Июль 16, 2013, 18:32 »

я как-то так делал как-то в теоретических целях

Код
C++ (Qt)
int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   QStringList arguments = qApp->arguments();
   if (arguments.count() == 1 || arguments.contains("gui")) {
       RClientDialog *w = new RClientDialog;
       w->show();
       return a.exec();
   } else {
       arguments.removeFirst();
       Console console(arguments);
       console.output("Work done!");
       return 0;
   }
}
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Июль 17, 2013, 02:27 »

Какое-то весьма странное сравнение "if (arguments.count() == 1 || arguments.contains("gui"))", да и в Linux это работать не будет без X11. Программа вывалится с ошибкой "Cannot connect to display".
Записан
thechicho
Гость
« Ответ #5 : Июль 17, 2013, 05:37 »

первый аргумент - имя программы.
если количество аргументов равно 1, значит никаких аргументов не задано.
то есть открыть гуи, если не задано аргументов или один из аргументов gui.
покажите как надо правильно это делать? я на ходу придумывал рабочее решение тогда.

я в линуксе хз как это работает. но если Qt требуется х11 для гуи там, то наверное это очевидно?
Записан
admsasha
Гость
« Ответ #6 : Июль 17, 2013, 07:32 »

по идее оно: QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled ). в документации к этому конструктору и пример есть.
Спасибо, помогло.
Записан
Hrundel
Гость
« Ответ #7 : Июль 17, 2013, 14:30 »

Честно сказать всегда не понимаю именно этой проблемы. Неужели влом написать маленькое окошечко с текстовым полем и двумя-тремя функциями, которые добавляют строки вывода?
Или просто не умешь? Тогда надо вопрос по другому формулировать: Например! Скажите как выводить данные в текстовое поле? Хочу че-та типа консоли смастырить.
Записан
admsasha
Гость
« Ответ #8 : Июль 17, 2013, 15:04 »

Честно сказать всегда не понимаю именно этой проблемы. Неужели влом написать маленькое окошечко с текстовым полем и двумя-тремя функциями, которые добавляют строки вывода?
Или просто не умешь? Тогда надо вопрос по другому формулировать: Например! Скажите как выводить данные в текстовое поле? Хочу че-та типа консоли смастырить.
Лично мне консоль нужна, для того чтобы делать вывод там где нет X.
Записан
Hrundel
Гость
« Ответ #9 : Июль 17, 2013, 17:20 »

А я уже было подумал и то и другое. Тады конечно ой  Смеющийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Июль 17, 2013, 17:42 »

не всякой программе нужен гуи, да и ничего плохого в консольных приложениях нету. юникс системы ж как-то жили раньше и продолжают жить без всяких графических пакетов.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Hrundel
Гость
« Ответ #11 : Июль 17, 2013, 23:32 »

Да я собственно и сам для Unixa пишу. И кажись ничего такого не сказал, что мол плохи таки консольные приложения. Да и под досом в псевдографике даже тетрис както от нечего делать написал.

Или ты Камбала просто повоспитывать кого-нибудь решил?  Злой
Записан
tester64
Гость
« Ответ #12 : Июль 18, 2013, 00:08 »

по идее оно: QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled ). в документации к этому конструктору и пример есть.

В Qt 5 это убрали. Там для консольного приложения предлагается использовать/наследовать QCoreApplication, а для GUI - QApplication.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #13 : Июль 18, 2013, 00:16 »

Или ты Камбала просто повоспитывать кого-нибудь решил?  Злой
нет, я никого воспитывать не собирался. просто стало непонятно откуда ты такие резкие выводы сделал:
Честно сказать всегда не понимаю именно этой проблемы. Неужели влом написать маленькое окошечко с текстовым полем и двумя-тремя функциями, которые добавляют строки вывода?
Или просто не умешь? Тогда надо вопрос по другому формулировать: Например! Скажите как выводить данные в текстовое поле? Хочу че-та типа консоли смастырить.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
thechicho
Гость
« Ответ #14 : Июль 18, 2013, 07:27 »

Hrundel, дешевые понты.
//Честно сказать всегда не понимаю именно этой проблемы.
я вот тоже никогда таких людей не понимал.
вместо того, чтобы чем-то помочь, писать

Цитировать
Неужели влом написать маленькое окошечко с текстовым полем и двумя-тремя функциями, которые добавляют строки вывода?
Или просто не умешь?

специалист, блин В замешательстве
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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