Титла: Приемане на аргументи от Bash в Qt4 Публикувано от: LinuxFanUNIX в May 28, 2009, 12:23 Добър ден.
Имам следния въпрос: Как мога да направя, така че да мога да обработвам аргументи от bash в Qt4? И за да е по-ясен въпроса, ще дам пример: Имам програма с име: Application. Ако към нея, през командния ред, подам --info например, как мога да свържа този аргумент със някой слот да речем? Ако не става, поне няма ли начин да се запише подадения аргумент в стринг от типа QString? Благодаря предварително! Титла: Re: Приемане на аргументи от Bash в Qt4 Публикувано от: task_struct в May 28, 2009, 13:05 Както винаги отговорът е в документацията: http://doc.qtsoftware.com/4.5/qapplication.html#QApplication
argc е борят на аргументите, а argv е масив с техните стойности. Можеш да си напишеш парсър. Друг вариант е да изпозлваш от КДЕ библиотеката класът KCmdLineArgs: http://api.kde.org/4.x-api/kdelibs-apidocs/kdecore/html/classKCmdLineArgs.html Пример: http://techbase.kde.org/Development/Tutorials/KCmdLineArgs Знам че си падаш по КДЕ3, така че го потърси в неговата документация и там съществува, доколкото знам :) Ако не искаш да линкваш с КДЕ библиотеки, можеш да изпозлваш кода за да си направиш свой клас ;) Успех! [_]3 Титла: Re: Приемане на аргументи от Bash в Qt4 Публикувано от: LinuxFanUNIX в May 28, 2009, 14:55 Както винаги отговорът е в документацията: http://doc.qtsoftware.com/4.5/qapplication.html#QApplicationМи не, сега ползвам MacOS обаче ще погледна все пак какво пише в документацията... :) Титла: Re: Приемане на аргументи от Bash в Qt4 Публикувано от: LinuxFanUNIX в May 28, 2009, 15:06 Както винаги отговорът е в документацията: http://doc.qtsoftware.com/4.5/qapplication.html#QApplicationА може ли примерче, тъй като нещо не можах да се ориентирам. Титла: Re: Приемане на аргументи от Bash в Qt4 Публикувано от: task_struct в May 28, 2009, 15:16 За кой от вариантите?
Титла: Re: Приемане на аргументи от Bash в Qt4 Публикувано от: LinuxFanUNIX в May 28, 2009, 15:38 За кой от вариантите?QApplication (argc, argv) Титла: Re: Приемане на аргументи от Bash в Qt4 Публикувано от: task_struct в May 28, 2009, 16:45 Тъй като ще стане много дълго, няма да пиша цял пример, а само идей какво може да се направи.
Такааа... :) argc ти е броят на подадените аргументи.. Според мен най-лесно би било да си сложиш аргументите в един QStringList, за по лесна обработка Код: QStringList argsList; Такааа вече имаме всички аргументи в 1 списък :) Сега парсването ... създаваш си статично един QMap с ключ аргумента и стойност указател към функция примерно то вида void ArgName(QStringList &args) В args се съхраняват аргументите на опцията. Примерно: --file alabala.txt, args ще има един елемент - alabala.txt :) И сега започваш да въртиш 1 цикъл през argsList-а като всеки елемент го проверяваш в QMap-а дали съществува, ако го има премахваш го от тоя лист и в викаш функцията на която съответства с аргументите следващите там колкото трябват елемтана от листа и тях също ги премахваш. (тук се сещам че трябва да имаш някакъв механизъм с който да знаеш коя опция колко аргумента иска :) (може пак с map а може и някакви класове или структура :) ) и това го правиш докато не ти свърши Листа или не срещнеш някакъв ерор при парсването (това сам си го определяш спрямо логиката на приложениеот ти :) ) че май е това като за на бързо измислено в почивката :) Действай :) [_]3 |