簡體   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