Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [с/с++/qt4 формошлепство на linux для простого пол 
:(
    Опции темы
sunjob
Дата 22.6.2020, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



не могу отредактировать тему, пожалуйста, подправьте скобки


Тема : с/с++/qt4 формошлепство на linux для простого пользователя

добрый день

1. планы, описание задачи:

хочу разобраться и наработать методику/код "формошлЁп-скрИптинга" для простого пользователя :о)
- GUI-формы будут на QT4/Lazarus (в данном случае рассматриваем QT4)

в GUI-форме: 
- вызовы скриптов, внешних команд и пр...
- получение выхлопа скрипта & ERRORLEVEL для дальнешего анализа 

т.к. GUI будут на QT4, то запуск скрипта / чтение выхлопа / ERR_LEVEL, ск.всего, будет на базе QT4 

2. настройки и рабочие скрипты

- ini-файл с настройками
- каталог со скриптами (либо стандартный PATH)

3. чтение ini-файла, запуск скриптов

- GUI-программа загружает в буфер содержимое ini-файла 
- реакция на кнопку -> вызов обработчика, типа:
Код

run_id(int ID);

- обработчик парсит буфер ini-файла, по ID получает имя_скрипта
- запуск скрипта, анализ выхлопа/кода возврата и ... дальнейшая реализация в зов-ти от фантазии :о) 

КОД_1 - запуск внешнего скрипта
архив code_1.tar.xz

Примерный выхлоп основной программы:
Код

### qDebug() 
 exitCode  () = ' 2 '
 exitStatus() = ' 0 '
 str_out      = ' "test script 2, arg=--add_scr2_arg --add_qt_app_arg
" '
 str_err      = ' "" '
 
### printf()
exitCode  () = '2'
exitStatus() = '0'
str_out   () = 'test script 2, arg=--add_scr2_arg --add_qt_app_arg
'
str_err   () = ''


ВОПРОСЫ

1. qDebug - имеет "обрамление" с обоих сторон строк в виде:
Код
' "' + '" '

(т.е. пробел + символ ковычки)

ВОПРОС 1: это особенности отладочного вывода qDebug ?

в обоих случаях qDebug & printf при "выхлопе текста" запускаемого скрипта - "странная" печать строки, с переносом в конце,  хотя сам выхлоп скрипта без переноса
Код

str_out   () = 'test script 2, arg=--add_scr2_arg --add_qt_app_arg
' !!! <-- вот тут перенос конца строки

ВОПРОС 2 :почему?

прочие ВОПРОСЫ:
- может, для внутреннего использования, лучше/проще по старинке использоавть string, или вообще простой буфер char* str

мне самому не оч. нравиться использовать qt-классы, для таких простых операций, но !!! логично писать в той "эко-системе" в которой пишешь GUI, мало-ли чего там еще в будущем шарахнет использовать, передать "какой особенный" параметр в QT4/GUI... имхо

уточнение: 
- именно QT4
- согласен, для простых GUI на cli/YAD/Zenity, логично "это" делать на bash/perl итд, кому, что удобнее
- в инете есть много "простых" примеров с "кодом" на с/с++, но я не встречал что-бы было реализовано одновременно при запуске скрипта получение выхлопа и кодa-возврата
- так-же не встречал подходящих/удобных/минимальных примеров/библиотек парсинга ini-файла, что-бы была организована работа с буфером а не с потоками (т.к. каждый раз для чтения ini-файла создаются/закрываются потоки... это не оптимально, надо будет подходящую библиотеку доробатывать, на примете inih, посмотрим, что можно сделать с ней :о)

буду благодарен за подсказки, ссылки, код итд ...

вопросы по написанию GUI и парсинг ini-файла будут позже

TAG: c,c++,gui,qt4,scripting


Это сообщение отредактировал(а) sunjob - 2.7.2020, 04:24
PM   Вверх
borisbn
Дата 26.6.2020, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 48
Всего: 135





--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
sunjob
Дата 26.6.2020, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да, это скрипты выхлоп делают с переносом :о)

...

протестировал (немного подрихтовал под себя) библиотеку
IniParser

простенькая, удобная, вполне годная!
итак, имеется два варианта работы с ini-файлом

- IniParser
- QSettings

Это сообщение отредактировал(а) sunjob - 2.7.2020, 04:24
PM   Вверх
sunjob
Дата 1.7.2020, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



дотошно потестировал QSettings ... действительно ... не очень удобный и не доработанный "объект"
люди аж с 15го года на форумах его ругают, пишут про косяки и недоделанность... видимо, воз и ныне там :о)

остановился на IniParser - маленькая, простая, удобная, все на месте, под рукой, понятно-логично

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

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

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


 




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


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

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