Название: Как получить список приложений KDE в Qt Отправлено: triggery от Июнь 10, 2013, 19:30 Ребята и просто добрые люди, здравствуйте. Пытаюсь разобраться с меню приложений в KDE. не то что бы оно мне не нравится, как тяга узнать как получается список приложений в меню Kickoff. Пытался откомпилить готовый проект KmrnuEdit(он мне показался попроще чем код самого меню) - так все получилось. Разбирался, но кода немало. Начал просто удалять что мне не нужно и компилить - даже получилось. Но вот беда: те части кода что мне казалось, отвечают за получения списка приложений я удалил из исходников, а список в TreeView все равно формируется. вот тут у меня начало ломаться мировоззрение и немного отчаялся уже. прошу помощи спецов и не только в этом, чтоб просто тыкнули носом в эти строчки кода. У меня методов в объектах почти не осталось -- а оно работает. как - не знаю... Может это из-за динамической библиотеки, которая почему создается - тоже загадка.
Прикреплю проект обрезанный как можно уже, но все же работающий у меня: Думаю это будет поучительным уроком не только для меня, но и для тех кому высветится этот форум по поиску в гугле)))) Вот уже битый час сижу и не могу догнать, откуда этот список берется. Хочется конечно почитать и документацию, но ее по этому поводу увы, нету))) Название: Re: Как получить список приложений KDE в Qt Отправлено: triggery от Июнь 10, 2013, 19:32 вот файл мой:
Название: Re: Как получить список приложений KDE в Qt Отправлено: mutineer от Июнь 10, 2013, 20:44 перепакуй в зип, пожалуйста
Название: Re: Как получить список приложений KDE в Qt Отправлено: triggery от Июнь 10, 2013, 22:05 перепаковал))))
Название: Re: Как получить список приложений KDE в Qt Отправлено: Vass от Июнь 10, 2013, 22:45 Код: foreach(const KSycocaEntry::Ptr &e, folder->entries(true, !m_showHidden, true, m_detailedMenuEntries && !m_detailedEntriesNamesFirst)) Вот же, перебор и добавление айтемов в рутовый Название: Re: Как получить список приложений KDE в Qt Отправлено: triggery от Июнь 11, 2013, 11:39 Спасибо, глаз уже совсем замылен))) Но мне казалось что увижу конструкцию:
Код: TreeView *m_tree = new TreeView(); Код: FindMenu() Код: m_tree->FindMenu(m_rootFolder, "/путь/где/находится/файл/с/пунктами/меню"); Кстати, нашел почему создается динамическая библиотека - Код: kde4_add_kdeinit_executable Название: Re: Как получить список приложений KDE в Qt Отправлено: triggery от Июнь 12, 2013, 17:16 Кстати, еще вопрос) Как же все таки собрать статически без шаред-либы libkdeinit4_kmenu_test_2.so (она создается во вложенной папке lib в каталоге исполняемого файла)?
пытаюсь вместо Код: kde4_add_kdeinit_executable( kmenu_test_2 ${mySources}) Код: kde4_add_executable( kmenu_test_2 ${mySources}) Компилятор при этом сборка не проходит из-за тучи ошибок. В чем может быть проблема? Название: Re: Как получить список приложений KDE в Qt Отправлено: triggery от Июнь 13, 2013, 01:32 Вот поигрался немного и разобрался. Таки куча, куча строк с ошибками в коде, что раньше компилился нормально. Почему - непонятно было. Очистил сорцы и хидеры, начал вводить сам код, тасовать строчки чтоб избавиться от "undefined reference to ..." и таки все получилось. Хотя, еще пришлось переименовать класс TreeView на AppsTreeView, наверно имя было зарезервировано, и подключить библу к простому проекту Qt нельзя было из-за матов... Теперь все ок))) спасибо))) Проект компилится статически.
|