Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа без формы [Qt] 
V
    Опции темы
BIV
Дата 28.10.2010, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.12.2007

Репутация: нет
Всего: 1



Всем доброе время суток!
Как создавать проекты, у которых нет формы (не консольное приложение)?
Как еще посылать команды в консоль ОС?
PM MAIL   Вверх
BIV
Дата 29.10.2010, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.12.2007

Репутация: нет
Всего: 1



Как сделать без формы я только что разобрался, а вот как посылать команды в командную строку (терминал) пока остается вопросом
PM MAIL   Вверх
SABROG
Дата 29.10.2010, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(BIV @  29.10.2010,  00:31 Найти цитируемый пост)
а вот как посылать команды в командную строку (терминал) пока остается вопросом 

QProcess / system() ?


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
BIV
Дата 29.10.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.12.2007

Репутация: нет
Всего: 1



Ага, спасибо!
Но как выполнять сразу несколько команд?
Если набрать

system(dir);
system("pause");

то запустится командная строка, покажет содержимое в директории, потом закроется, запуститься новое и выполниться остановка. Как выполнить все команды в одном окне?
Как получать то, что выводит командная строка?
PM MAIL   Вверх
null56
Дата 30.10.2010, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



Цитата(BIV @  29.10.2010,  18:32 Найти цитируемый пост)
Как выполнить все команды в одном окне?

в никсах разделитель был точка с запятой, в винде хз
Код

dir; pause

PM MAIL   Вверх
null56
Дата 30.10.2010, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



Цитата(BIV @  29.10.2010,  18:32 Найти цитируемый пост)
Как получать то, что выводит командная строка? 

может что - то типа этого?
Код

 QProcess builder;
 builder.setProcessChannelMode(QProcess::MergedChannels);
 builder.start("make", QStringList() << "-j2");

 if (!builder.waitForFinished())
     qDebug() << "Make failed:" << builder.errorString();
 else
     qDebug() << "Make output:" << builder.readAll();

PM MAIL   Вверх
BIV
Дата 30.10.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.12.2007

Репутация: нет
Всего: 1



Хотелось бы уточнить, что такое qDebug()?
Можно ли вывод консоли передать в переменную? Это нужно для того, чтобы выдерать оттуда нужные мне сообщения и выводить их в отдельное окно. Пусть эти сообщения записываются в строку

PM MAIL   Вверх
null56
Дата 30.10.2010, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



Цитата(BIV @  30.10.2010,  22:29 Найти цитируемый пост)
Хотелось бы уточнить, что такое qDebug()?

отладочная печать
Цитата(BIV @  30.10.2010,  22:29 Найти цитируемый пост)
Можно ли вывод консоли передать в переменную? Это нужно для того, чтобы выдерать оттуда нужные мне сообщения и выводить их в отдельное окно. Пусть эти сообщения записываются в строку

в этом примере, который я выдернул из ассистента, как раз приводится возможность прочитать вывод с stdout и stderror....
я не проверял данный пример, но скажу, что он делает
Цитата(null56 @  30.10.2010,  00:40 Найти цитируемый пост)
 QProcess builder;
 builder.setProcessChannelMode(QProcess::MergedChannels);
 builder.start("make", QStringList() << "-j2");

- создается объект класса, которому задается возможность слежения за обоими стандартными потоками, которые тебе нужны
Цитата

QProcess::MergedChannels - QProcess merges the output of the running process into the standard output channel (stdout). The standard error channel (stderr) will not receive any data. The standard output and standard error data of the running process are interleaved.

- далее функция - метод класса start запускает команду make с аргументом -j2
Код

builder.start("make", QStringList() << "-j2");

- далее ожидается окончание выполнения заданных команд
Код

builder.waitForFinished()

- далее на основании условия анализируется вывод
Твой вывод ты сможешь по идее получить через методы класса.
stdout через
Код

 builder.readAll()

srderr через
Код

builder.errorString()

описание этих методов смотри в ассистенте в классе QProcess, они возвращают строки, что тебе и нужно
попробуй набей этот пример и посмотри, что получится, только вместо make используй свои dir и Ко... )

Это сообщение отредактировал(а) null56 - 30.10.2010, 23:21
PM MAIL   Вверх
BIV
Дата 31.10.2010, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.12.2007

Репутация: нет
Всего: 1



Спасибо, есть чем заняться!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0650 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.