![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_Гость_heiheshang_*_* |
![]()
Сообщение
#1
|
Гости ![]() |
Проблема в следующем, ни как не могу слинковать код. В qtcreator есть библиотека libDuiEditor. Я ее подключаю к своему проекту. Код компилируется, но линковщик в упор не хочет видеть этот модуль.
Может я чего-то не понимаю ?
Вот код самого модуля
|
|
|
![]() |
frg10 |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Disclaimer: пишу все чисто теоретически - на практике ничего из нижеперечисленного не делал.
Если вы действительно хотите взяться за это, то приготовьтесь потянуть себе много всего из QtCreator. Вот мне кажется минимум: 1) ExtensionSystem - загрузка и управление плагинами 2) Aggregation - аггрегация объектов 3) CorePlugin - собственно ядро QtCreator. Требуется для работы любого плагина. 4) TextEditor - требуется для DuiEditor 5) Find, QuickOpen - требуются для TextEditor 6) Сам DuiEditor Далее приготовьтесь: 1) Необходимо загрузить и инициализировать все плагины. Этим занимается PluginManager из ExtensionSystem. Как это делается можно посмотреть в qtcreator/app/main.cpp. 2) Core при загрузке создает главное окно приложения. Т.е. создастся окно QtCreator с меню и панельками. 3) Когда плагин инициализируется, он регистрирует все объекты, которые предоставляет, в PluginManager. Соответственно, если вы хотите использовать этот функционал, то вам нужно получать эти объекты из PluginManager-а или можно воспользоваться интерфейсом ICore. Второй вариант гораздо проще. Конкретно DuiEditor экспортирует: - фабрику классов для создания редакторов. - визард для создания QML файлов - объект Code Completion - подсветку редактора Для примера, допустим что вам нужно открыть редактор QML. Класс ICore предоставляет доступ к различным менеджерам. В том числе, там есть EditorManager. Этот менеджер управляет редакторами и может их создавать (внутри у него есть список всех зарегистрированных фабрик). Создать редактор можно так:
mimetype передавать не обязательно, если файл имеет расширение qml. Получаем указатель на интерфейс IEditor - это и есть редактор. Через функцию IEditor::widget() получаем окно и делаем с ним все что угодно. Надеюсь помог. ![]() Если хотите дальше разрабатывать эту тему, то без ковыряния исходников никак не обойтись. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 27.6.2025, 4:52 |