Название: Пользовательский виджет (плагин)в Qt Designer Отправлено: jurijt от Декабрь 06, 2017, 06:57 Добрый день!
Помогите начинающему окончательно разобраться с пользовательскими виджетами для Дизайнера. Я полагал, что получив .dll с виджетом, и соответственно разместив его, мой виджет будет имеет полную самодостаточность. Т.е. как и встроенные в Дизайнер виджеты. Но оказалось, что при использовании виджета все равно надо подключать (прописывать пути) к исходным файлам виджета. Без этого при компиляции проекта вылезает куча ошибок. Подскажите, имеется ли какая либо возможность сделать, чтоб пользовательские виджеты имели свойства, как и стандартные и не требовали указания путей к исходникам? Название: Re: Пользовательский виджет (плагин)в Qt Designer Отправлено: vbv от Декабрь 06, 2017, 09:19 Рекомендую взять книгу и почитать.
На данном этапе скажу несколько, даже не знаю как назвать, советов/утверждений. 1. Виджет в дизайнере состоит из: 1.1. Заголовочного файла .h 1.2. Библиотеки (в вашем случае dll) реализующий сам виджет. 1.3. И собственно плагина для дизайнера (dll) дающему абстрактный доступ к виджету из п.1.2 и порожденному от QDesignerCustomWidgetInterface 2. При запуске дизайнер находит все плагины (в т.ч. созданные в п.1.3) 3. Когда вы ставите его на форму - дизайнер знает через плагин из п.1.3 как создать виджет из п.1.2. 4. Вы сохраняете виджет в файл ui. 5. Вы подключаете виджет к своему приложению и в этот момент для доступа к свойствам нужно подключить .h файл иначе компилятор не узнает о именах свойств/методов вашего плагина. (тут возможны варианты т.к. о существовании .h файла дизайнер знает) посмотрите файлы созданные moc препроцессором для понимания там уже есть подключение вашего h файла. 6. Вы в .pro или подобный файл приложения подключаете библиотеку т.к. для линковщика надо указать с чем линковать. Компилируем, собираем, радуемся. Если коротко - как-то так. Название: Re: Пользовательский виджет (плагин)в Qt Designer Отправлено: jurijt от Декабрь 06, 2017, 15:11 Спасибо за ответ!
Я всегда пытаюсь самостоятельно найти ответы на свои недопонимания, но в данном случае, увы, истратив порядочно времени ответа получить не удалсь :-( 5. Вы подключаете виджет к своему приложению и в этот момент для доступа к свойствам нужно подключить .h файл иначе компилятор не узнает о именах свойств/методов вашего плагина. (тут возможны варианты т.к. о существовании .h файла дизайнер знает) Вот про этот нюанс я и пытаюсь найти ответ! Где ему (Дизайнеру) прописать, чтоб он знал не только о существовании такого файла, но и где он лежит?Пока таких плагинов-виджетов не много, то вроде можно каждый раз и ручками прописать. Но предполагается, что число их будет со временем расти. Название: Re: Пользовательский виджет (плагин)в Qt Designer Отправлено: vbv от Декабрь 06, 2017, 21:04 QString QDesignerCustomWidgetInterface::includeFile() const;
Должен вернуть строку содержащую имя .h файла. QDesignerCustomWidgetInterface это то от чего порождаете ваш плагин.... Думаю понятно. Добавлено: И еще, не знаю где под форточками лежат заголовочные файлы но под linux у меня /usr/include А не стандартное место указывается дополнением в .pro файл: INCLUDEPATH += .... где-то там Название: Re: Пользовательский виджет (плагин)в Qt Designer Отправлено: jurijt от Декабрь 10, 2017, 10:11 Спасибо, что пытались мне помочь, но я не понимаю, как это решает мою задачу. Как подключить заголовочные и прочие файлы в проект мне понятно. Но как сделать чтоб их не надо было бы подключать, как это у стандартно встроенных в Дизайнер виджетов, так и не понял :'(
|