В QtDesigner-е помимо своих widget-ов есть возможность добавлять и рукописные. И даже есть примеры в документации, как их изготавливать. Класс, который обеспечивает регистрацию рукодельного widget-а, наследует интерфейс QDesignerCustomWidgetInterface. В этом интерфейсе есть функция includeFile, которая, как я понял, должна возвращать строку с заголовочным файлом рукодельного widget-а. В примере (Custom Widget Plugin) возвращается только имя файла, без никто:
QString AnalogClockPlugin::includeFile() const
{
return "analogclock.h";
}
и такой вариант не работает. При попытке собрать приложение с формой, на которой лежат эти часы, конпелятор говорит, что
analogclock.h не найден. Хорошо, я явно указал, откуда можно его забрать:
QString AnalogClockPlugin::includeFile() const
{
return "<../examples/designer/customwidgetplugin/analogclock.h>";
}
Компиляция проходит успешно, но при линковке оказывается, что функции widget-а, лежащего на форме
QtDesigner-а задекорированы (
undefined reference to `_imp___ZN9AnalogClockC1EP7QWidget), и линковка проваливается.
Что и где я делаю неправильно, кроме того, что использую Qt?