Qt Designer
自带的控件虽然能够在很大程度上满足我们日常的开发,但是当遇到一些比较特殊需求时,往往显得力不从心。所以自定义插件的开发,并将其导入Qt的设计师中,这样可以像基本控件一样拖拽到UI界面中,同时也可以自定义一些属于插件的独有属性,直接在UI界面中配置,十分方便快捷。
创建工程
接下来, 我以TimelinePlugin为例,填写创建过程中的一些基本信息
源文件信息中填写一些控件类的名称
这一部分填写的是对插件的描述, 比如所属于那个分组( Qt 设计师
软件中显示插件分组如下图,这里的组写的是 Customise
), 其实就是左侧控件归属于那个标签组, 工具提示
和 这是什么
其实就是 toolTip()
和 whatsThis()
这里面其实是当插件被拖拽到UI界面中时,需要引用的xml文件内容,这一部分不用动,都是默认生成的
下一步中还有一个设置插件名称的部分, 填写好之后, 创建工程的部分就结束了。
部署
这里建议 Build
环节中, Release
版本中添加额外的构建步骤, 如图所示, Make 参数
为 install
, 这样在编译过程中, 会将编译出的插件库复制到 Qt Designer
的插件目录下。
而添加这一步会生效的原因是在 pro 文件中添加了这2行代码,声明需要复制的地址,和执行的条件, 这2行代码一般在创建工程时候默认生成
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target
于此同时还需要加一步特别重要的步骤, 添加导出符号
QDESIGNER_WIDGET_EXPORT
宏必须被使用,或自己编译动态库导出文件。这里我建议使用Qt自带的QDESIGNER_WIDGET_EXPORT
宏。不加的话可以在设计器中加载,但是在使用这个类的时候编译会报错。
用法如下:
部署和一些导出的环节基本就结束了, 接下来简单尝试一些是否能够正常使用
使用
我简单在插件中添加一个 Label
, 并给 Label
上显示为 TimelinePlugin
, 同时创建一个 ShowPlugin
的工程, 里面就是只有一个空的mainwidow
的文件, 在 Qt Designer
中将插件拖拽到 mainwidow.ui
中
此外 ShowPlugin.pro
文件中需要配置插件的头文件位置, 以及链接插件库, 将编译好的 Timelineplugin.dll
提前移动到链接库的地址中, 如下图
使用的环节基本就这些,最后编译 ShowPlugin
工程,可以得到的结果图如下: