Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
frg10 |
9.11.2009, 21:45
Сообщение
#11
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2
|
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() получаем окно и делаем с ним все что угодно. Надеюсь помог. Если хотите дальше разрабатывать эту тему, то без ковыряния исходников никак не обойтись. |
|
|
|
| Гость_Гость_heiheshang_*_* |
10.11.2009, 10:19
Сообщение
#12
|
|
Гости |
frg10
Копание в коде привело меня к такому результату но такой код генерит исключение. Может подскажете где копать , загрузить библиотеки или еще чего установить для приложения?
Причина редактирования: не цитируй целыми сообщениями
|
|
|
|
|
frg10 |
10.11.2009, 12:38
Сообщение
#13
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2
|
А что, то что я написал не работает? Вы все плагины загрузили?
|
|
|
|
| Гость_Гость_heiheshang_*_* |
10.11.2009, 15:26
Сообщение
#14
|
|
Гости |
Цитата(frg10 @ 10.11.2009, 12:38) Link А что, то что я написал не работает? Вы все плагины загрузили? Не работает Делал так , скопировал из main.cpp |
|
|
|
|
frg10 |
10.11.2009, 17:34
Сообщение
#15
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2
|
Гм... У меня ваш код без последних четрех строк отлично работает с QtCreator 1.2.1. На какой строчке у вас падает?
|
|
|
|
| Гость_Гость_heiheshang_*_* |
10.11.2009, 17:42
Сообщение
#16
|
|
Гости |
Цитата(frg10 @ 10.11.2009, 17:34) Link Гм... У меня ваш код без последних четрех строк отлично работает с QtCreator 1.2.1. На какой строчке у вас падает? Вот на этой выпадает, чет со стилем не так раз на него ругается. |
|
|
|
|
frg10 |
10.11.2009, 18:01
Сообщение
#17
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2
|
Да, не получается у него стиль загрузить. Просто QtCreator запускается? Под какой системой сидите?
Попробуйте вставит вначале программы, после создания QApplication строчку: Что выдаст? |
|
|
|
| Гость_Гость_heiheshang_*_* |
10.11.2009, 18:23
Сообщение
#18
|
|
Гости |
Цитата(frg10 @ 10.11.2009, 18:01) Link Да, не получается у него стиль загрузить. Просто QtCreator запускается? Под какой системой сидите? Попробуйте вставит вначале программы, после создания QApplication строчку: Что выдаст? Ни че не выдает хотя стоит QApplication::setStyle(new QWindowsStyle); |
|
|
|
|
frg10 |
10.11.2009, 23:15
Сообщение
#19
|
|
Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 8.11.2009 Из: Ростов-на-Дону Пользователь №: 1213 Спасибо сказали: 5 раз(а) Репутация: 2
|
Цитата(Гость_Гость_heiheshang_*_* @ 10.11.2009, 18:23) Link Ни че не выдает хотя стоит QApplication::setStyle(new QWindowsStyle); Тогда нужно или вообще убрать принудительную установку стиля, или сделать вот так:
|
|
|
|
|
Litkevich Yuriy |
11.11.2009, 3:47
Сообщение
#20
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Стиль лучше устанавливать через фабрику:
и проверять указатель, т.к. стиля может не существовать на данной конкретной машине
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 4:19 |