优麒麟2204文件管理器peony扩展初开发

这次突发奇想,想给peony写个插件用来扩展一些文件属性的东西,在gitee上和开发讨论了一下,是可以实现的,我就把peony的代码拉了下来,开发建议我参考一下peony-share的代码,peony的代码里也有一些扩展或者说是插件的代码,但是目前的测试来看是不能使用(过期了),总的来说是这样的。

peony提供了,文件系统,工具栏,文件属性页,菜单,视图,预览,风格等插件的接口,还有一个我不知道是用来做什么的,看起来像是和文件图标有关联,我这次是用文件属性页的插件接口做的demo。

具体实现是要继承properties-window-tab-page-plugin-iface.h头文件里声明PropertiesWindowTabPagePluginIface类的接口,然后具体的调用或者是说显示需要继承properties-window-tab-iface.h里的Peony::PropertiesWindowTabIface,然后在properties-window-tab-page-plugin-iface.h的createTabPage里返回继承了Peony::PropertiesWindowTabIface类的插件主体的实例,我的理解是properties-window-tab-page-plugin-iface.h是告诉peony这是一个插件,然后在继承了Peony::PropertiesWindowTabIface的类里实现自己需要的方法,返回给peony去渲染。

整个Peony::PropertiesWindowTabIface里的方法很少,基本只有一个页面改变和保存的方法。

PropertiesWindowTabPagePluginIface里的东西不多,tabOrder应该是整个tab的排序,supportUri时候控制是否显示的true是显示,false是不显示,createPage则是具体的内容显示,之前的demo里写的返回类型是QWidget,现在改成PropertiesWindowTabIface应该是考虑到QWidget类型可能不太灵活,所以做成现在这样。

首先使用qtcreator建立一个新的项目,然后类型选择lib,在项目的pro文件CONFIG里加上plugin(必须),这样可以让生成的so库文件不带版本,方便拷贝,在实现PropertiesWindowTabPagePluginIface的时候需要用

Q_PLUGIN_METADATA(IID PropertiesWindowTabPagePluginIface_iid FILE "common.json")

这句来声明插件匹配的peony版本,common.json是一个json内容的文件,文件名字应该是可以自定义的,目前文件里只有一个字段,就是version,内容是需要和自己本机的peony定义的宏VERSION匹配,但是这个宏是在pri文件里写的,没有在头文件里,最简单的就是看关于页面的版本,这个就是直接返回的VERSION这个定义。

两个类都写好以后就可以直接构建生成so文件,然后放到/usr/lib/x86_64-linux-gnu/peony-extensions里就可以,重新加载只需要关闭peony的进程再打开就可以,简单的说就是关闭文件管理器再打开就会重新加载库文件。

因为不太会qt所以有些说法可能不太标准,可以参考peony-share的实现,项目目前的名字是peony-extensions,这个是peony的官方插件的名字,里边有很多个插件的实现,可以对照着实现自己的插件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值