代码之家  ›  专栏  ›  技术社区  ›  Satbir

从MFC到Qt的转换

  •  3
  • Satbir  · 技术社区  · 15 年前

    目前,我们所有的GUI组件都是用MFC编写的。我们的构建环境是:

    VC 6

    视窗XP

    我不知道是否:

    1)我们可以用qt替换所有的mfc组件,而不改变构建环境?

    2)Qt将像其他库一样与VC6一起工作?

    您的回答将帮助我开始,同时我已经安装了qt 4并正在尝试构建一些示例。

    4 回复  |  直到 12 年前
        1
  •  6
  •   Caleb Huitt - cjhuitt    15 年前

    1)如果我们可以用qt替换所有的mfc组件,而不改变构建环境?

    是的,您甚至可以得到一个mfc/qt迁移框架cf qt.nokia.com/products/appdev/add-on-products/catalog/4/Windows/qtwinmigrate/

    2)Qt是否可以像其他库那样与VC6一起工作?

    VC6已经10岁以上了!

    Qt在4.5版之前支持VC6 下一个版本(4.6)将放弃VC6支持CF qt.nokia.com/doc/4.6-snapshot/qt4-6-intro.html#performance-optimizations

        2
  •  2
  •   Debilski    15 年前

    您可能不应该在Qt4.5中使用VC6。( see doc )

    除此之外:如果您的项目使用qt编译,您可以轻松地*切换到qt组件。qt无论如何都使用自己的组件,因此不涉及其他依赖项。

    但是,要设置Qt环境,您可能需要对构建系统进行一些更改,除非您不使用 QObject S.(想想MOC预处理器。)

    *:可以很容易地开始使用qt组件。将MFC组件实际迁移到qt组件所需的工作量是我所不知道的。

        3
  •  2
  •   Kirill V. Lyadvinsky    15 年前

    将MFC替换为Qt需要做大量工作。首先,你应该考虑一下你是否需要。其次,Qt可以与Visual Studio集成。

        4
  •  1
  •   darron    15 年前

    在尝试将一个客户机的MFC应用程序移植到Qt时,我学到了一些非常有用的东西。

    我做 许多 重构。我一点也不害怕。但是,我通常 递增地 改变事情。这就大不一样了。

    在发布了qt的lgpl版本之后,我开始将MFC应用程序移植到qt,但是 在lgpl发布'qtwinmigrate'之前 (在 ftp://ftp.qt.nokia.com/qt/solutions/lgpl/ )当时,我认为qt将保留MFC迁移的内容,作为获得商业许可的激励。

    在能够编译项目之前,我必须转换大量的文件。一旦基本功能启动并运行,我就慢慢地重新添加对话框,直到功能与原始版本相匹配。这是 更加困难 而不是保持现有的MFC应用程序按原样运行并缓慢替换对话框。

    所以,关键是… 使用qtwinmigrate!

    哦,是的…不要使用VC6。升级到最新版本。