Название: Custom widget plugin Отправлено: L.Marvell от Августа 27, 2005, 13:52 Создал свой собственный виджет со списком установленных в системе шрифтов, наследуемый от QListWidget. Делал так, чтобы название шрифта отображалось тем шрифтом, которое оно отображает (сори за каламбур). Подключил плагин к дизайнеру. Проблема в том, что когда ложу плагин на форму, то список отображается разными шрифтами, а в просмотре и в уже скомпилином проекте названия отображаются обычным шрифтом. Поделитесь мыслями в чем может быть загвоздка.
Название: Custom widget plugin Отправлено: L.Marvell от Августа 27, 2005, 15:53 Что самое интересное, когда я добавляю этот же виджет вручную, а не через дизайнер, то все работает отлично...
Название: Custom widget plugin Отправлено: L.Marvell от Августа 27, 2005, 16:41 Итак... Проблема обнаружена (наверное), осталось только найти выход. А проблема в том, что в дизайнере говорится, что объект порожден от класса QListWidget, хотя должен бы от JCFontListWidget, который в свою очередь наследован от QListWidget.
У меня тут мысль возникла. Есть 4 файла: jcfontlistwidget.h jcfontlistwidget.cpp jcfontlistwidgetplugin.h jcfontlistwidgetplugin.cpp Собранный плагин ложится в %QTDIR%\plugins\designer. Но ведь он ссылается на jcfontlistwidget.h, а система о нем ничегошеньки не знает! Т.е. .h и .cpp тоже нужно куда-то положить или это я уже с ума схожу? В Асистенте про это вроде ничего не сказано. Нуждаюсь в помощи знающих. Название: Custom widget plugin Отправлено: joktar от Августа 29, 2005, 04:41 Цитата: "L.Marvell" Итак... Проблема обнаружена (наверное), осталось только найти выход. А проблема в том, что в дизайнере говорится, что объект порожден от класса QListWidget, хотя должен бы от JCFontListWidget, который в свою очередь наследован от QListWidget. У меня тут мысль возникла. Есть 4 файла: jcfontlistwidget.h jcfontlistwidget.cpp jcfontlistwidgetplugin.h jcfontlistwidgetplugin.cpp Собранный плагин ложится в %QTDIR%\plugins\designer. Но ведь он ссылается на jcfontlistwidget.h, а система о нем ничегошеньки не знает! А должна знать. Цитата: "L.Marvell" Т.е. .h и .cpp тоже нужно куда-то положить или это я уже с ума схожу? В Асистенте про это вроде ничего не сказано. Нуждаюсь в помощи знающих. Т.е.проблема с тем, что не подключается jcfontlistwidget.h? Я делал по "Qt3:C++ программирование GUI на C++" (перевод "C++ GUI Programming with Qt3"), там в главе 5 есть расписаный пример интеграции в Designer. Книга это в сети есть как на русском так и на англйском варианте(вот URL'ов не помню) Про QStringList x3d_renderWidgetPlugin::keys() const { return QStringList() << "x3d_renderwidget"; } и(особенно) QString x3d_renderWidgetPlugin::includeFile(const QString &) const { return "x3d_renderwidget.h"; } Не забыл?(Имена естественно свои,проверялось на 3.3.4) Название: Custom widget plugin Отправлено: L.Marvell от Августа 29, 2005, 13:07 Да вот собственно делал по примеру в Асистенте. Плагин собрался, к дизайнеру подключился, но вот такой трабл. А вот этого я не понял:
Цитировать Про QStringList x3d_renderWidgetPlugin::keys() const { return QStringList() << "x3d_renderwidget"; } и(особенно) QString x3d_renderWidgetPlugin::includeFile(const QString &) const { return "x3d_renderwidget.h"; } Не забыл?(Имена естественно свои,проверялось на 3.3.4) Название: Custom widget plugin Отправлено: joktar от Августа 29, 2005, 18:03 Цитата: "L.Marvell" Да вот собственно делал по примеру в Асистенте. Плагин собрался, к дизайнеру подключился, но вот такой трабл. А вот этого я не понял: Цитировать Про QStringList x3d_renderWidgetPlugin::keys() const { return QStringList() << "x3d_renderwidget"; } и(особенно) QString x3d_renderWidgetPlugin::includeFile(const QString &) const { return "x3d_renderwidget.h"; } Не забыл?(Имена естественно свои,проверялось на 3.3.4) Это кусок моего плагина ::keys возращает имя реализованного плагинов виджета(у меня-x3d_renderwidget) QStringList x3d_renderWidgetPlugin::keys() const { return QStringList() << "x3d_renderwidget"; } (а includeFile возвращает какой надо подкючать .h-файл) и(особенно) QString x3d_renderWidgetPlugin::includeFile(const QString &) const { return "x3d_renderwidget.h"; } У тебя естественно вместо x3d_renderwidget.h должен быть твой header, вместо x3d_renderwidget - имя твоего widget'а а вместо x3d_renderWidgetPlugin - соотвественно твой plugin-класс Название: Custom widget plugin Отправлено: L.Marvell от Августа 29, 2005, 18:38 А, шут меня побери, стормозил. Ну да, есть у меня эти два метода, только вместо keys - name. Забыл сказать, юзаю Qt 4.0.1 open source под вынь.
Код: QString JCFontListWidgetPlugin::name() const |