QT Designer
-
Dimon
Re: QT Designer
ivank
Цитата:
При чём тут QT Designer?
Не проще ли передавать всё это сразу башу
Пардон, а как я это все сразу передам?
Есть QProcess, у него есть метод addArgument. если я просто загоняю в него всю строку и посылаю на запуск - не работает, если же разбиваю на аргументы - работает. Как дальше быть?
А дизайнер тут при том, что может быть есть такой виджет, который уже реализует командную строку.
Не смейтесь сильно, если вопросы сильно ламеризмом попахивают - это моя первая прога под Qt. Делайте скидку...
Цитата:
При чём тут QT Designer?
Не проще ли передавать всё это сразу башу
Пардон, а как я это все сразу передам?
Есть QProcess, у него есть метод addArgument. если я просто загоняю в него всю строку и посылаю на запуск - не работает, если же разбиваю на аргументы - работает. Как дальше быть?
А дизайнер тут при том, что может быть есть такой виджет, который уже реализует командную строку.
Не смейтесь сильно, если вопросы сильно ламеризмом попахивают - это моя первая прога под Qt. Делайте скидку...
-
ivank
Re: QT Designer
Суть в том, что QT тут в общем н присём. можно просто выполнить /bin/sh с единственным параметром - то, что ввели в коммандной строке. Потом считать. Смотреть в сторону popen(), если не ошибаюсб.
А лучше не каждый раз порождать /bin/sh для выполнения одной строчки. А родить раз, а затем просто строчку ему скармливать и брать её результат. Честно говоря, не уверен как это проще сделать. Наверно, всё же придётся создавать трубу (pipe). Вообще говоря, юниксовый программер из меня тот ещё, поэтому это наверняка не лучшее решение.
И до кучи: если хочется самому парсить строчку:
Добавлено:
н присём = не причём
А лучше не каждый раз порождать /bin/sh для выполнения одной строчки. А родить раз, а затем просто строчку ему скармливать и брать её результат. Честно говоря, не уверен как это проще сделать. Наверно, всё же придётся создавать трубу (pipe). Вообще говоря, юниксовый программер из меня тот ещё, поэтому это наверняка не лучшее решение.
И до кучи: если хочется самому парсить строчку:
http://www.google.ru/search?hl=ru&am...arsing&lr=
Добавлено:
н присём = не причём
-
Dimon
Re: QT Designer
Мда, прогнал я вчера конкретно.
Сегодня вроде разобрался...
В общем, организовал командную строку пока так:
Код:
Такие вот выражения, типа ls /home/dim>1|sort && cat 1 вроде работают.
Сегодня вроде разобрался... В общем, организовал командную строку пока так:
Код:
Код: Выделить всё
connect ( cmd_line, SIGNAL(readyReadStdout()), this, SLOT(slotReadFromStdout()) );
...
cmd_line->setArguments("/bin/bash");
cmd_line->addArgument("-c");
cmd_line->addArgument(arg); // Entered command.
exit_status=cmd_line->start(0);
...
void lab1::slotReadFromStdout()
{
consoleTextEdit->append( cmd_line->readStdout() );
}Такие вот выражения, типа ls /home/dim>1|sort && cat 1 вроде работают.
-
hasherfrog
Re: QT Designer
Dimon
Только маленький совет: протестируйте как следует потом своё приложение. Особенно обратите внимание на "затопление" выходной/выходной трубы
При большом количестве строк, передаваемых туда и извлекаемых оттуда, идут глюки. Кррр, долго объяснять, если столкнётесь вдруг, я расскажу...
Только маленький совет: протестируйте как следует потом своё приложение. Особенно обратите внимание на "затопление" выходной/выходной трубы
При большом количестве строк, передаваемых туда и извлекаемых оттуда, идут глюки. Кррр, долго объяснять, если столкнётесь вдруг, я расскажу...-
Dimon
Re: QT Designer
hasherfrog
Ммм, немного не понял.
Я вызваю приложение по start(), оно отработало и я завершаю его по closeStdin(), tryTerminate() или вообще по kill(). И что, глюки могут быть во время работы приложения, когда я буду посылать строки, с помощью например writeToStdin() или забирать строки по readStdout() ? И какие именно глюки, чтобы я смог их распознать и ликвидировать. Или обозвать фичей приожения.
Ммм, немного не понял.
Я вызваю приложение по start(), оно отработало и я завершаю его по closeStdin(), tryTerminate() или вообще по kill(). И что, глюки могут быть во время работы приложения, когда я буду посылать строки, с помощью например writeToStdin() или забирать строки по readStdout() ? И какие именно глюки, чтобы я смог их распознать и ликвидировать. Или обозвать фичей приожения.

-
hasherfrog
Re: QT Designer
Визуально это будет выглядеть так:
1. Вы посылаете башу 5 команд(строк).
2. баш получает 1 строку, обрабатывает, возвращает результат.
3. Вы ждёте ответа на ещё четыре команды - до пенсии.
Как вариант, Вы устаёте ждать и...
3а. Вы посылаете ещё одну команду.
4а. Баш возвращает ответ на ранее посланные 4 + ответ последнюю.
1. Вы посылаете башу 5 команд(строк).
2. баш получает 1 строку, обрабатывает, возвращает результат.
3. Вы ждёте ответа на ещё четыре команды - до пенсии.
Как вариант, Вы устаёте ждать и...
3а. Вы посылаете ещё одну команду.
4а. Баш возвращает ответ на ранее посланные 4 + ответ последнюю.
-
Dimon
Re: QT Designer
Такой еще вопрос: внятно объясните пожалуйста, как пользваться Spacer'ами? Каков механизм их работы? Какие есть общие рекомендации при их использовании? А то нигде ничего по существу не написано, или написано, что, мол, выравниванием можно овладеть только методом проб и ошибок. А этот самый метод пока не дает результатов...
-
hasherfrog
Re: QT Designer
Цитата:
выравниванием можно овладеть только методом проб и ошибок.
Не знаю, где Вы это прочитали, но это удивительно точное описание. В процессе создания формы приходится поизгалятся, чтобы она под разными wm выглядела прилично.
Как научится пользоватся (и принцип действия) - это сразу становится понятным, когда Вы начинаете ресайзить форму (диалог). Если контролсы ведут себя "неприлично", нужно спейсеров добавить. Только не увлекайтесь. Как правило 2-х хватает за глаза.
И маленький совет: поменьше объединяйте контролсы в группы.
выравниванием можно овладеть только методом проб и ошибок.
Не знаю, где Вы это прочитали, но это удивительно точное описание. В процессе создания формы приходится поизгалятся, чтобы она под разными wm выглядела прилично.Как научится пользоватся (и принцип действия) - это сразу становится понятным, когда Вы начинаете ресайзить форму (диалог). Если контролсы ведут себя "неприлично", нужно спейсеров добавить. Только не увлекайтесь. Как правило 2-х хватает за глаза.
И маленький совет: поменьше объединяйте контролсы в группы.
-
Dimon
Re: QT Designer
hasherfrog
Цитата:
Не знаю, где Вы это прочитали, но это удивительно точное описание.
Да нашел одну статью на kde.org - вот там такое и написано. Очень информативно и крайне познавательно...
Для чего нужны спэйсеры я понимаю. Но вот принцип их работы - все никак не раскушу. Ну хоть в двух словах основные положения, так сказать, можно узнать?
Цитата:
Не знаю, где Вы это прочитали, но это удивительно точное описание.
Да нашел одну статью на kde.org - вот там такое и написано. Очень информативно и крайне познавательно...
Для чего нужны спэйсеры я понимаю. Но вот принцип их работы - все никак не раскушу. Ну хоть в двух словах основные положения, так сказать, можно узнать?
-
hasherfrog
Re: QT Designer
Dimon
Не совсем понял вопрос. Принцип работы стоит посмотреть в исходниках QT, наверное?..
Не совсем понял вопрос. Принцип работы стоит посмотреть в исходниках QT, наверное?..