最近工作重心转移到了从Windows到Linux的跨平台移植,经过这段时间的探索和学习,成功地完成了状态栏的移植!
在此将移植方法简单记录一下~
1.代码复用
移植不是从0到1的过程,移植是将相同的功能从一个平台转移到另外一个平台上,所以代码复用是很有必要的。
在进行代码复用之前,有必要先清一波冗余代码,不然移垃圾也挺费劲儿的不是。
如何进行代码复用呢?当然是抽基类啊。对于公共的属性和方法,统统放到基类中。
基类中的函数实现必须保证是可以跨平台的,因此需要将Windows类、WindowsAPI基于C++标准库进行改造。
2.在Linux下重写UI
由于被移植的桌面软件之前是基于MFC实现的,所以UI实现肯定是Windows和Linux各一份咯。
以这次移植的状态栏为例,通过继承QStatusBar实现自定义状态栏,基于之前的串接流程完成界面和数据的串接工作。