我为 Qt 5 制作了一个自定义小部件插件库,在我升级我的操作系统(到 ubuntu 19.04)之前它工作正常。
在当前版本(5.12)中,UIC 无法生成ui_
头文件... Makefile 将自定义小部件头声明为使用它的 cpp 文件的依赖项:
ui_dialog-rectangulation.h: ../anr-0.1.5/src/gui/dialog-rectangulation.ui \
/usr/lib/qt5/bin/uic \
qtz/widgets/viewers/image-viewer.hpp
/usr/lib/qt5/bin/uic ../anr-0.1.5/src/gui/dialog-rectangulation.ui -o ui_dialog-rectangulation.h
虽然无法满足依赖:
make: *** No rule to make target 'qtz/widgets/viewers/image-viewer.hpp', needed by 'ui_dialog-rectangulation.h'. Stop.
并且ui_...
不会生成。
小部件插件库声明包含文件,如下所示:
QString ImageViewerPlugin::includeFile() const {
return QLatin1String("qtz/widgets/viewers/image-viewer.hpp");
}
路径是正确的,头文件存在那里,尽管 Makefile 不包含此类文件的完整路径(见上文)。
问题:
- 它应该
Makefile
包括完整路径吗?在那种情况下,我应该从什么返回ImageViewerPlugin::includeFile()
? - 一般来说,我对这些小部件做错了什么?它曾经在 Ubuntu 和 Windows 上与 Qt 5.9 一起正常工作。源代码在https://github.com/soroush/qtz-widgets,插件库在https://github.com/soroush/qtz-plugin