最近接到了一个任务,将几个功能从C++Builder迁移至QT中。运气好,能看到源代码,所以迁移过程没那么难,但还是花了不少时间。花点时间总结一下。
首先要找到对应的代码,这个可以通过操作已有软件来快速定位。找到代码后可以全部复制过去再改,也可以先找到最核心的代码再逐步添加各种参数。刚开始我是用的后一种方法,后面添加功能则是采用的第一种方法,这样会快很多。
代码拷贝后就是在QT平台下添加和修改参数了。我做了个跟原功能对话框类似的Dialog,去掉了一些细枝末节的选项,只保留关键参数。在这个过程中对QT的各主要控件和布局有了大量的应用,对其使用方法产生了比较深刻的理解。这是基本布局,代码拷过来后还需要做嵌套,在工作过程中对QT的信号和槽机制又进行了大量的应用。将整个的架构都捋顺后,接下来的修改就比较简单了。
主要修改的是字符串的类型,从AnsiString转成QString。跟String有关的函数也有些变化,不过也基本上是一些大写变小写的问题。碰得比较多的问题是字符串和字符的转换,获取字符串C++Builder中是str.c_str(),QT中则是str.toLatin1().data()。还有cons