C++ 如何将qt3库完全移植到qt4?
我一直在跌跌撞撞地通过一些不同的步骤来做到这一点。我在有编译错误的文件上运行了qt3to4.exe,完成了许多转换步骤,但是现在我遇到了以下错误:C++ 如何将qt3库完全移植到qt4?,c++,visual-studio-2008,qt,visual-c++,C++,Visual Studio 2008,Qt,Visual C++,我一直在跌跌撞撞地通过一些不同的步骤来做到这一点。我在有编译错误的文件上运行了qt3to4.exe,完成了许多转换步骤,但是现在我遇到了以下错误: 1>c:\qt\4.7.0\src\qt3support\widgets\q3toolbar.h(64):错误C2039:“ToolBarDock”:不是 “Qt”的成员 以及其他55个类似错误。这让我很困惑,因为它在qt自己的q3support库中。我还在QT帮助页面上看到(http://doc.trolltech.com/4.2/qt-qt3.h
1>c:\qt\4.7.0\src\qt3support\widgets\q3toolbar.h(64):错误C2039:“ToolBarDock”:不是
“Qt”的成员
以及其他55个类似错误。这让我很困惑,因为它在qt自己的q3support库中。我还在QT帮助页面上看到(http://doc.trolltech.com/4.2/qt-qt3.html)该ToolBarDock已被弃用,应改用Qt::Dock。
我在这方面没有找到什么帮助。我正在使用VisualStudio2008内部的库。有QT/visualstudio专家吗
如果这有帮助,下面是它在q3toolbar中失败的代码。h:
Q3ToolBar(const QString &label,
Q3MainWindow *, Qt::ToolBarDock = Qt::DockTop,
bool newLine = false, const char* name=0);
在这个问题上,我走了另一条路。我从其他地方的“qt3库”找到了我需要的实现。就在我发现之前,我从这里的一些同事那里得到了一些建议。大家一致认为,我需要重新构建Qt,以包括qt3支持。虽然我没有完成,但这里有一些有用的链接
如果有人遇到这个问题并解决了这个问题,请发布您的解决方案!谢谢。事实上,qt34qt4并不是事事都好。有许多方法、枚举等未转换。这或多或少是一个简单的查找替换工具,它替换了qt\tools\porting\q3porting.xml中的以下指令 在许多情况下,类有替换定义,但此类的方法没有替换定义。在某些情况下,qt3to4会替换代码中根本不属于Qt类的枚举和方法。所以要小心。在任何情况下,我建议您在代码中获得所有Qt类的列表,仔细阅读移植说明(http://doc.qt.nokia.com/4.5/porting4.html)对于您使用的每个类。 另一个问题是返回类型,qt3to4不检查返回值的使用方式。幸运的是,qt3to4做得很好,因此修复其余部分通常是一项琐碎、重复的任务 如果必须移植UI,请查看uic3的未记录参数包装
注:一些数字对于您的工作量估算可能有用:我在2,5个月内移植了(编译)一次600TLOCs+150UI,目前我正在移植大约150个TLOCs项目,并且在两周内完成了相当长的工作 在将项目导入VC++之后,我也遇到了这些错误。将QT3_支持添加到预处理器定义中修复了此问题。在Qt->Qt项目设置(菜单)中添加QT3支持模块(如果已安装Qt visual加载项),并检查是否有帮助。它将自动添加也需要definitions@Kamil:在pro.file上运行qt3to4会自动将Qt3Support添加到项目文件中。