我一直在跌跌撞撞地通过一些不同的步骤来做到这一点。我在有编译错误的文件上运行了qt3to4.exe,并完成了许多转换步骤,但是现在我得到了这个错误:1>c:\qt\4.7.0\src\qt3support\widgets\q3toolbar.h(64) : error C2039: 'ToolBarDock' : is not a member of 'Qt'和其他55个类似的错误。这让我很困惑,因为它在qt自己的q3support库中。我还在QT帮助页面(http://doc.trolltech.com/4.2/qt-qt3.html)上看到ToolBarDock已被弃用,应该使用Qt::Dock。我在这方面找不到太多的帮助。我使用的是Visual Studio2008中的库。有没有QT/visual studio专家?
如果这有帮助,下面是q3toolbar.h中失败的代码:
Q3ToolBar(const QString &label,
Q3MainWindow *, Qt::ToolBarDock = Qt::DockTop,
bool newLine = false, const char* name=0);发布于 2010-10-24 20:44:05
实际上,qt34qt4并不是所有的事情都是正确的。有很多方法、枚举等都不会被转换。它或多或少是一个简单的查找-替换工具,它替换了qt\tools\porting\q3porting.xml中的以下指令。在许多情况下,有一个类的替换定义,但没有这个类的方法。在某些情况下,qt3to4替换了根本不属于Qt类的代码中的枚举和方法。所以要小心。在任何情况下,我都建议获取代码中所有Qt类的列表,仔细阅读您使用的每个类的移植说明(http://doc.qt.nokia.com/4.5/porting4.html)。另一个问题是返回类型,qt3to4不检查返回值是如何使用的。幸运的qt3to4是一项很好的工作,因此修复其余的工作通常是一项琐碎的、重复的任务。
如果必须移植UI,可以查看uic3的未记录参数-wrap。
附言:对于你的工作量估算,一些数字可能会有用:我在2,5个月内移植(编译)了一次600TLOCs + 150个UI,目前我移植了大约150个TLOC项目,并在2周内完成了相当多的工作。
发布于 2011-08-21 01:29:19
在将项目导入到VC++中后,我也遇到了这些错误。将QT3_SUPPORT添加到预处理器定义修复了该问题。
发布于 2010-10-14 04:11:51
我最终在这个问题上走了一条不同的路线。我在其他地方的"qt3库“中找到了我需要的实现。就在我发现这一点之前,我从一些同事那里得到了一些建议。大家的共识是,我需要重新构建Qt指定,以包含qt3支持。尽管我没有坚持到底,但这里有一些有用的链接。
http://www.qtcentre.org/wiki/index.php?title=Qt4_with_Visual_Studio
http://lists.trolltech.com/qt-interest/2006-11/thread00177-0.html
如果有人遇到这个问题并解决了这个问题,请发布你的解决方案!谢谢。
https://stackoverflow.com/questions/3912103
复制相似问题