我可以在不使用其UI框架的情况下将Qt用作C++库

Fab*_*ian 6 c++ qt mfc

在没有实际使用Qt用户界面系统的情况下,使用Qt提高MFC应用程序的生产率是否有意义?

我目前正在寻找或基于MFC的应用程序的良好生产力库,包括有用的容器类,字符串算法,线程类,I/O类等.在我看来,Qt API非常好用.但是,由于我不想将我的UI切换到Qt(只是太费力),我想知道Qt是否可以在没有任何Qt UI的MFC应用程序中很好地使用.

提前感谢您的意见.

法比安

sha*_*tte 10

Qt分为几个模块(QtGui就是其中之一).您可以通过仅链接所需的库来手动选择应用程序使用的模块.

我无法回答Qt是否可与MFC互操作.但至少,QString提供转换为std :: string和char*/wchar,这应该会对你有所帮助.

Qt文档提供了有关模块的概述.

正如daniel在下面指出的那样,你必须知道事件循环.但是,可以在没有GUI模块的情况下使用事件循环.您可以在QCoreApplication上调用processEvents来处理所有排队的事件,然后返回.有一个延迟删除的警告,但文档描述了解决方法.


dor*_*ron 7

您可以使用一些实用程序类,但有一个非常重要的警告.Qt在很大程度上取决于它的事件循环.事件循环通过调用启动QApplication::exec().现在许多Qt类依赖于信号和插槽机制是Qt.信号和插槽完全依赖于事件循环才能正常运行.

这对于GUI模块来说完全正确,但对于其他一些模块也是如此.可以预期每个派生的类QObject都使用信号和插槽,因此在没有事件循环的情况下将无法使用.


Lat*_*fer 5

当然,您可以使用QT工具包而无需使用它的GUI库.

根据您的需要,您可能需要考虑提升库,它提供了一组理智的API,可以帮助解决很多问题.我个人用它来以多平台的方式进行网络套接字,但还有更多内容.