Comments 15
У меня вопросы :)
Имена классов с маленькой буквы… ну, такое…
Зачем интерфейс — наследник куобжекта, если в нем только pure virtual функции?
В составе примеров куте есть отличный plug and paint на эту тему :)
Первая статья и всё такое, извиняюсь:). А причём тут plug and paint? вы мне предлагаете рисовать весь виджет(все кнопки, весь функционал?), Зачем если виджет несёт за собой много полезных функций, и второе я добавляю свой функционал с помощью виртуализации и третье я могу легко работать с этим виджетом, скрывать когда мне нужно удалять, загружать заново. Вы не поняли суть стать.
Наследник QObject нужен для сохранения системы сигналов и слотов(по необходимости), если не нужны сигналы можно и не наследоваться от него
Ваша идиллическая картина рушится в следующий момент после возникновения необходимости реализации нескольких таких интерфейсов в одном плагине. (Почему? потому что возникает diamond problem)
Лучше так:
а из интерфейсов убрать наследование от куобжекта, тем более, оно там ни к чему, на самом деле :)
Лучше так:
class Plugin : public QObject, public Interface, public Interface2 {}
а из интерфейсов убрать наследование от куобжекта, тем более, оно там ни к чему, на самом деле :)
Насчёт убрать QObject да возможно, просто привычно работать с объектами.
Во второй части статьи, создаётся виджет с интерфейсами, я могу прописать сколько хочу интерфейсов, в том числе сигналы и слоты и передавать любые данные, хоть структурные.
Во второй части статьи, создаётся виджет с интерфейсами, я могу прописать сколько хочу интерфейсов, в том числе сигналы и слоты и передавать любые данные, хоть структурные.
Плагин служит лишь фабрикой для создания виджета, где я могу прописать сколько угодно интерфейсов
И там нету diamond problem, плагин и созданный виджет не связаны между собой.
Я вам больше скажу, Qt просто не даст отнаследовать класс от более, чем одного QObject-based класса.
> А причём тут plug and paint
он тут при том, что это пример плагинной архитектуры программы от создателей куте. И не имеет некоторых недостатков, присущих данной статье. Только лишь.
он тут при том, что это пример плагинной архитектуры программы от создателей куте. И не имеет некоторых недостатков, присущих данной статье. Только лишь.
.
Sign up to leave a comment.
Создание системы расширения на библиотеке Qt