9

我们目前维护了一套设计得相当好的 MFC 应用程序,但是用户界面开始看起来很累,并且很多代码需要进行相当多的重构来整理一些重复和/或性能问题。我们使用了相当多的自定义控件来处理它们自己的绘图(全部使用 MFC 编写)。

最近,我一直在对 Qt 及其提供的好处进行更多研究(跨平台并支持您可能称之为更“专业”的 UI 开发框架)。

我的问题是 -也许迁移到 Qt 框架的最佳方法是什么?Qt 和 MFC 配合得好吗?开始将我们的一些自定义控件移植到 Qt 并逐渐越来越多地集成到我们现有的 MFC 应用程序中会更好吗?(这可能吗?)。

任何建议或以前的经验表示赞赏。

4

4 回答 4

8

在我的公司,我们目前正在使用 Qt,并且对它非常满意。

我个人从来不需要将 MFC 应用程序转移到使用 Qt 框架,但这里有一些你可能会感兴趣的东西:

Qt/MFC 迁移框架

Qt/MFC 迁移框架

它是 Qt-Solutions 的一部分,因此这意味着您必须购买 Qt 许可证以及 Qt-Solutions 许可证。(编辑:不再

我希望这有帮助 !

于 2008-08-26T11:50:35.247 回答
2

(这并不能真正回答您的具体问题,但是......)我没有亲自使用过 Qt,但它对于商业 Windows 开发不是免费的。

你看过免费的wxWindows吗?好文章在这里。顺便说一句,如果你想要一个适用于所有平台的代码库,那么你可能不得不从 MFC 迁移出去——我很确定(如果错了会有人纠正)MFC 只针对 Windows。

另一种选择是查看 VS2008 的 SP1 中对 MFC 的功能包更新- 它包括对新控件的访问,包括 Office 样式的功能区控件。

于 2008-08-26T09:46:26.307 回答
0

这是一个棘手的问题,我怀疑答案取决于你有多少时间。如果您将自定义控件移植到 Qt,您将获得更好的结果 - 如果您使用 QStyle 类进行实际绘图,那么您最终将获得开箱即用的主题代码。

总的来说,我的建议是咬紧牙关,一次完成。当然,这可能需要更长的时间,但另一种选择是花一个时间尝试调试不能完全发挥作用的代码,并最终编写更多代码来处理两个系统之间的轻微不兼容性(去过那里,做过)。

所以,总而言之,我的建议是创建一个分支并删除所有旧的 MFC 代码并用 Qt 替换它。您将(几乎)免费获得平台独立性,虽然这需要一段时间,但最终您会得到一个更好的产品。

最后一句警告:确保你花时间理解“Qt 做事方式”——在某些情况下,它可能与 MFC 方法完全不同——你最不想做的事情就是最终使用 MFC——风格的 Qt 代码。

于 2008-08-26T09:48:34.430 回答
0

我以前曾带领一个团队做这种事情(不是 MFC 到 QT,但原则应该有效)。

首先,我们记录了对话框以及它们的输入、控制和输出是什么。此外,我们创建了几个测试用例,特别是针对 GUI 内的任何巧妙逻辑。

有时我们不得不重构一些业务逻辑以提供一个干净的 GUI 界面,但这是它应该首先完成的方式。

现在我们有了一个 GUI、输入、输出、测试和封装 GUI 必须匹配的接口的列表。

我们开始逐个项目地创建与旧 GUI 等效的 GUI。一旦我们这样做了,我们就可以将 GUI 插入旧的位置,重建并测试它。起初我们经常出错,但我们很快就找出了常见的错误并修复了它们。我们浏览了(我认为)612 个对话框,尽管我们有一个大约十几个人的团队在处理它。

于 2012-06-06T11:39:59.603 回答