Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Запуск терминала с уже заданой командой в среде QT  (Прочитано 4002 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн galaxyblazer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Пишу прожку на кют, одной из задач которой есть профилирования самой себя и поиск ошибок в динамической памяти в самой себе. Естественно для этого пришлось написать еще одну прожку которая и будет все это дело деалть. т.е. Первая прожка которую и буду анализировать будет вызывать вторую прожку в которой и буду кнопочки профилирования и поиска ошибок. С запуском второй прожки проблем у меня нету, но есть проблема в том что бы запустить уже второй прожкой терминал с уже заданой командой т.е. для профилирования и поиска ошибок я использую valgrind. Вот как я делал:
QProcess proc;
QStringList arg;
arg<<"valgrind --leak-check=full --leak-resolution=med ./myprog";
proc.startDatached("gnome-terminal",arg);
в результате, терминал открывался но там ничего не било. Подскажите что не так я делаю?

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
man gnome-terminal говорит, что надо так:
gnome-terminal --command=STRING

Оффлайн galaxyblazer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
тоисть так:
proc.startDatached(gnome-terminal --valgrind --leak-check=full --leak-resolution=med ./myprog=STRING);??

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Наверное, так (не могу сейчас проверить)
gnome-terminal --command="valgrind --leak-check=full --leak-resolution=med ./myprog"

Оффлайн galaxyblazer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
у меня так ничего не работает. вообще не хочет компилироваться .

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
proc.startDatached(gnome-terminal,null);папробували?
Wars ~.o

Оффлайн galaxyblazer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
proc.startDatached(gnome-terminal,null);папробували?
proc.startDatached("gnome-terminal") так работает, а без скобок , кют не понимает что такое gnome и terminal

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
ненужно терминал, так
proc.startDatached("zenity --info --text Hello")?
Wars ~.o

Оффлайн galaxyblazer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
ненужно терминал, так
proc.startDatached("zenity --info --text Hello")?
работает, появилось окошко. Но когда я пихаю нужную мне команду, то ничего не происходит.((

Пользователь решил продолжить мысль 07 Мая 2013, 08:27:51:
Так как дальше? я так и не смог решить проблемы...(
« Последнее редактирование: 07 Мая 2013, 08:27:51 от galaxyblazer »

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
у меня так ничего не работает. вообще не хочет компилироваться .
Если руками запустить - работает?
Скорее всего, вы в коде забыли экранировать кавычки.

Оффлайн galaxyblazer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
у меня так ничего не работает. вообще не хочет компилироваться .
Если руками запустить - работает?
Скорее всего, вы в коде забыли экранировать кавычки.
если руками запустить, то все работает, а вот з кют в терминал команда не хочет передаваться . вот такая ошибка: (gnome-terminal:2609): Vte-2.90-WARNING **: Не удалось преобразовать символы из набора текущая в набор X-VTE-GUNICHAR.
Unhandled value type TerminalEncoding of pspec encoding, при этом терминал не запускаеться.

Пользователь решил продолжить мысль 08 Мая 2013, 00:33:26:
Еще одно интерестно. Я пробовал запускать исполняемые файлы напрямую из кют (без терминала) И сначала ничего не заметил и решил что они не запускались, пока случайно не сделал маленькой ошибки : в исполняемом файле я не правильно указал путь к программе которую профилируют и в кют вывелась ошибка, мол неизвестная команда ./myProg  тоисть как в терминале. Потом я исправил это и увидел что исполняемый файл все же начал свою работу но никуда ничего не выводил(valgrind  во время профилирование или же любой другой проверки запускает проверяемую программу , вот так я и понял что файл все же работал). Из этого следует вопрос: можно ли сделать вывод выполнения этого исполняемого файла в кют, или же влюбое другое окошко? Ну и интерестно в чем тот исполняемый файл собственно исполнялся? 

Пользователь решил продолжить мысль 08 Мая 2013, 01:03:30:
Короче говоря идея такова. раз исполняемый файл начал свою работу, значит как-то можно процесс его выполнения и результат куда-то выводить. Мне уже все равно куда оно будет его выводить, главное что бы на екран и без лишнего участия пользователя...а то мой вариант, где появляеться форма с указаниями как что запустить, а потом запуск терминала и нужно вводить названия исполняемых файлов, после чего начинается его работа, препода не совсем обрадовала. Подскажите как можно "доклепать" исполняемый файл, или же код на кют, что бы результат выполнения куда-то выводился.   
« Последнее редактирование: 08 Мая 2013, 01:03:30 от galaxyblazer »

Оффлайн galaxyblazer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Проблема решилась установкой на Ubuntu КДЕшной консоли и запуска скриптов в ней а а не в терминале гнома.
Вот такой код прекрасно работал:
QStringList arg;
arg « "--hold" « "-e" « "valgrind" « "--leak-check=full" « "--leak-resolution=med" « "./kursova";
QProcess::startDetached("konsole", arg);

с теми же аргументами, гном опять матерился....   

 

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