1.准备工作
qt3文档和qt5文档
qt4的designer
qt5的编译环境
2.修改
2.1ui文件
首先修改ui文件,将qt3的ui文件用qt4designer打开,因为qt5的designer打不开qt3,然后保存,先将ui文件转换为qt4,然后qt5就可以打开了。
接着用编辑器打开ui文件,将里面所有的Q3改为Q,也可以在qtcreator中打开,用文本编辑器去修改,然后就是修改ui文件中的类,有些类在qt5中已经删除,比如qtable,可以用qtableview去替换,也可以去实现qtable,当然也要考虑ui文件的继承关系,这一步就是解决ui文件中的报错,直到解决了uic生成的文件所有报错,当然改变了类之后有些函数变化了,uic文件一直报错,但是在编辑器中不好去改,可以直接删了,在构造中直接ui->对象名->方法();
有些ui文件在转的过程中会自动删除一些东西,比如说一些布局的名字,之后在文件中会发现整个项目找不到,那可能是转换的时候删除了,需要去比较qt3的源码,自己添加,ui文件修改到uic编译正确了就好。
2.2pro文件
主要的变化就是添加模块,比如QT += core gui xml,可以随便创建一个qt5项目看看
还有就是指定好头文件和库文件的位置
2.3.h文件
在文本编辑器中找到继承于ui文件的类名,创建命名空间,并且修改继承关系,一般qt3的继承关系都是继承自己的类,现在全都继承系统提供的,比如qmainwindow,qdialog,记得包含相应的头文件。
然后创建一个ui文件的对象ui;这个ui指针就可以调用ui文件中的组件了,剩下的自己去修改ui文件的报错。
2.4.cpp文件
基本上就修改这三个地方,继承关系改为和.h中一样的,后面两行直接添加,这里可能传入的参数会报错,不能去接受那么多参数了,可以在构造中自己实现,之后析构中可以去释放ui。
3.总结
qt3升级qt5大致上过程就是这样,剩下的就是找可以替换的类和相应的函数,最常见的类可能就是qlistview,现在可以用qlistview,qlistwidget,qtreeview,qtreewidget来代替。