QT Designer

Аватара пользователя
Dimon

Re: QT Designer

Сообщение Dimon »

ivank


Цитата:



При чём тут QT Designer?

Не проще ли передавать всё это сразу башу



Пардон, а как я это все сразу передам?

Есть QProcess, у него есть метод addArgument. если я просто загоняю в него всю строку и посылаю на запуск - не работает, если же разбиваю на аргументы - работает. Как дальше быть?

А дизайнер тут при том, что может быть есть такой виджет, который уже реализует командную строку.



Не смейтесь сильно, если вопросы сильно ламеризмом попахивают - это моя первая прога под Qt. Делайте скидку...
Аватара пользователя
ivank

Re: QT Designer

Сообщение ivank »

Суть в том, что QT тут в общем н присём. можно просто выполнить /bin/sh с единственным параметром - то, что ввели в коммандной строке. Потом считать. Смотреть в сторону popen(), если не ошибаюсб.



А лучше не каждый раз порождать /bin/sh для выполнения одной строчки. А родить раз, а затем просто строчку ему скармливать и брать её результат. Честно говоря, не уверен как это проще сделать. Наверно, всё же придётся создавать трубу (pipe). Вообще говоря, юниксовый программер из меня тот ещё, поэтому это наверняка не лучшее решение.



И до кучи: если хочется самому парсить строчку:
http://www.google.ru/search?hl=ru&am...arsing&lr=




Добавлено:



н присём = не причём
Аватара пользователя
Dimon

Re: QT Designer

Сообщение Dimon »

Мда, прогнал я вчера конкретно. Изображение Сегодня вроде разобрался...



В общем, организовал командную строку пока так:



Код:

Код: Выделить всё

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

Сообщение hasherfrog »

Dimon

Только маленький совет: протестируйте как следует потом своё приложение. Особенно обратите внимание на "затопление" выходной/выходной трубы Изображение При большом количестве строк, передаваемых туда и извлекаемых оттуда, идут глюки. Кррр, долго объяснять, если столкнётесь вдруг, я расскажу...
Аватара пользователя
Dimon

Re: QT Designer

Сообщение Dimon »

hasherfrog

Ммм, немного не понял.

Я вызваю приложение по start(), оно отработало и я завершаю его по closeStdin(), tryTerminate() или вообще по kill(). И что,  глюки могут быть во время работы приложения, когда я буду посылать строки, с помощью например writeToStdin() или забирать строки по readStdout() ? И какие именно глюки, чтобы я смог их распознать и ликвидировать. Или обозвать фичей приожения. Изображение
Аватара пользователя
hasherfrog

Re: QT Designer

Сообщение hasherfrog »

Визуально это будет выглядеть так:

1. Вы посылаете башу 5 команд(строк).

2. баш получает 1 строку, обрабатывает, возвращает результат.

3. Вы ждёте ответа на ещё четыре команды - до пенсии.

Как вариант, Вы устаёте ждать и...

3а. Вы посылаете ещё одну команду.

4а. Баш возвращает ответ на ранее посланные 4 + ответ последнюю.
Аватара пользователя
Dimon

Re: QT Designer

Сообщение Dimon »

Такой еще вопрос: внятно объясните пожалуйста, как пользваться Spacer'ами? Каков механизм их работы? Какие есть общие рекомендации при их использовании? А то нигде ничего по существу не написано, или написано, что, мол, выравниванием можно овладеть только методом проб и ошибок. А этот самый метод пока не дает результатов...
Аватара пользователя
hasherfrog

Re: QT Designer

Сообщение hasherfrog »

Цитата:



выравниванием можно овладеть только методом проб и ошибок.



Изображение Не знаю, где Вы это прочитали, но это удивительно точное описание. В процессе создания формы приходится поизгалятся, чтобы она под разными wm выглядела прилично.

Как научится пользоватся (и принцип действия) - это сразу становится понятным, когда Вы начинаете ресайзить форму (диалог). Если контролсы ведут себя "неприлично", нужно спейсеров добавить. Только не увлекайтесь. Как правило 2-х хватает за глаза.

И маленький совет: поменьше объединяйте контролсы в группы.
Аватара пользователя
Dimon

Re: QT Designer

Сообщение Dimon »

hasherfrog


Цитата:



Не знаю, где Вы это прочитали, но это удивительно точное описание.



Да нашел одну статью на kde.org - вот там такое и написано. Очень информативно и крайне познавательно...

Для чего нужны спэйсеры я понимаю. Но вот принцип их работы - все никак не раскушу. Ну хоть в двух словах основные положения, так сказать, можно узнать?
Аватара пользователя
hasherfrog

Re: QT Designer

Сообщение hasherfrog »

Dimon

Не совсем понял вопрос. Принцип работы стоит посмотреть в исходниках QT, наверное?..
Ответить

Вернуться в «Программирование и базы данных»