MFC的替代品

Edw*_*nge 21 c++ windows user-interface

/sf/ask/10478891/

许多赞成的评论声称有更好的选择.我想知道它们可能是什么.

我的主要要求是UI使用本机小部件,以便我们的自动化软件可以工作.所有者绘制的窗口更难驾驶.

我并不是特别喜欢MFC的设计,所以替代方案会很好.我发现的只有一个是WX,这是我们已经尝试过的并且正在考虑放弃的.我们需要一些不会迫使我们与一堆我们不关心的跨平台包装进行斗争的东西.我们正在编写一个Windows应用程序,并且市场营销并没有针对Mac或Linux提供一个单一的废话(是的,这也让我的屁股受伤).

我已经看了一下.NET选项.问题是我不太了解它,但据我所知,我们必须使用C#来获得MFC随时可用的许多选项.例如,C++/CLI工具包似乎没有乍一看的停靠窗口.事实上,WinFroms直接选项似乎也没有.看起来我们必须制作一个WPF项目,而这看起来根本不是我们真正想要的东西(除了另一个工具包之外,我们还有大量的废话要学习).搬出C++也需要大量的包装,我并不特别喜欢我从自动包装器中看到的结果.

我对.NET选项的另一个问题是我们有一个非常强大的绘图应用程序(除了需要很多表单).我知道你可以用.NET之类的JIT语言获得类似的结果,但我也知道你必须要小心谨慎.这是一个我想避免担心的问题.

.NET(至少是交换语言)的另一个也许是最重要的问题是我们有大量的接口逻辑虽然应该是API不可知的,但它是用C++编写的.

那么其他选择是什么?这些人真的有分数,或者他们只是对任何不是他们喜欢的语言或工具包的东西大喊大叫?

注意:
这里有什么问题?我特别说到移植到其他平台甚至都不是一个考虑因素,而且我必须拥有使用本机小部件集的东西,所以我们不必完全改变测试用于自动化产品的所有东西!有没有人真正读过我的问题?

Mar*_*ett 12

Qt是目前基于C++的gui工具包的唯一真正答案(至少对于完整的桌面应用程序而言).即使对于纯粹的Windows应用程序来说它也是值得的 - 它还与visual studio(获得vs-addin)有很好的集成,并且有很好的文档记录.

wx有一些不错的观点,一个是它与使用中的MFC非常相似,但随着Qt走向LGPL,wx的真正优势已经丢失.

编辑 Qt小部件不是原生的但他们确实使用本机样式API,因此它们与本机小部件无法区分 - 如果您使用默认样式.

  • 你忘了提到Qt的其他负面因素:丑陋的自动生成的源文件,MOC的额外构建步骤,需要为VS中的所有项目使用自定义构建或makefile,不使用RAII,尝试重新实现整个标准库,等等 (11认同)
  • 那么这个答案是没有答案的.它为什么被投票? (3认同)
  • 您不必使用Qt集合类,并且MFC也实现了它自己的版本STL(严重).moc步骤与VSS插件没有问题,并且比MFC资源编译器问题少 - 至少Qt的输出是可执行代码.是的,今天有信号/插槽的增强替代品,但Qt仍然比MFC宏更好,更强大. (2认同)