繁体   English   中英

现有C ++项目的Qt UI

[英]Qt UI for existing C++ project

我已经编写了一个C ++程序,我想为它编写一个GUI。 我意识到Qt是一个很棒的工具,但是,Qt有它自己的类,这让我很困惑。 例如:Qt有一个名为QString的类,而不是String。

我想知道我是否可以在C ++中混合使用C ++代码和Qt代码?

是的,你可以很容易地混合Qt和STL。

GUI接受QString但是会静默地创建这些形式的std::stringchar* ,从Qt返回的QStrings可以用toStdString()toAscii()

Qt包含一组集合类,但您不必使用它们。

Qt很好地看起来像现代C ++,有一些'额外'来处理信号和插槽事件机制,但这些更多是构建环境的复杂性而不是代码。

编辑:谢谢账单

我不建议将std c ++代码和Qt代码混合在一起。

比方说,你的c ++代码是Qt代码的逻辑,应该只用于GUI。 使用MVC / MVP模式或类似方法,分离您的逻辑和UI。

因此,将来可以更轻松地使用/不使用UI来运行代码。

总之,是的,你可以! 例如,QString本质上是一个字符串,并且具有toAscii()方法,因此您可以轻松地将Qt用于您的项目。 虽然你可能遇到将Qt集成到visual studio中的一些问题(假设你正在使用它),你将能够混合c ++代码和Qt代码(在c ++中)

是啊! Qt是你可以在C ++代码中使用的东西。 Qt主要用于GUI,但它是Socket,Containers,Network等的好类。您可以自由使用STL和其他普通类或Qt为您提供的类。 最重要的一点是,如果你在主编译之前的代码中使用Qt,你应该进行元编译,以便为编译器做好准备。 你应该注意的一点是,Qt不是标准的,它意味着虽然它支持Windows,Linux和Mac OS,但它不能在其他平台上使用。

它们可以一起使用。

C ++有着悠久的历史,STL的实现和支持随着语言的发展而发展。 我认为前Trolltech团队认为他们对STL实现的质量和可用性没有足够的控制权来使Qt库依赖它。 结果是Qt有自己的QTL,QtAlgorithms头和QString。

他们注意使它们与STL兼容:

  • 大多数容器都有与STL类似的接口(例如:iterator access,push_back(),empty()等)
  • Qt容器可以转换为STL容器(例如:QVector :: toStdVector,QList :: fromStdList)
  • Qt容器可以与STL算法一起使用
  • 可以使用toStd(W)String / fromStd(W)String将QString转换为std :: string和std :: wstring

就个人而言,我喜欢QString而不是std :: string,它更容易使用,功能更强大。

是的你可以。

我实际上为一组基于C的函数制作了一个Qt-GUI包装器。 Qt集成没有问题,只有低级别C(泄漏内存......)。

请参阅此处: http//code.google.com/p/qhocr/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM