Qtソフトウェアの発展の歴史と優位性の特徴

4203 ワード

一、Qtとは何ですか.
Qtは有名なC++アプリケーションフレームワークです.Qtは非常に巨大で、GUIコンポーネントだけではないので、GUIライブラリとは言えません.Qtを使用すると、ある程度は「ワンストップ」のソリューションが得られます.STLを研究する必要はありません.C++を必要としません.XMLを解析したり、データベースに接続したり、ネットワークにアクセスしたりするさまざまなサードパーティライブラリをあちこち探したりする必要はありません.Qt自身がこれらの技術を内蔵しているからです.Qtはプラットフォームにまたがるフレームワークです.プラットフォーム間GUIには、通常、3つの実装ポリシーがあります.
API   :API     ,         API,              。            API       。
   ,  Windows           Mac OS            Button。     Button  ,    Windows    ,
        ;    Mac OS  ,        。       ,             ,        
 ;   ,                      ,  ,          API。   Mac OS        
   ,   Windows     ,        。           wxWidgets。         C++  ,  Qt  
   。         MFC   ,     。  ,   MFC              wxWidgets    。

API   :    ,API    “  ”         ,  API           。         API,     
            。       ,Mac OS           ,   Windows    。  ,        
       ,  Windows            。API          wine ——    Linux     Windows    。 
     Win32 API   Linux        ,  Linux      wine    Windows   。      ,API        ,
          ,          。             DirectX,                   
    。     ,            ,              ,SDK             。(  
  ,             。)

GUI   :              ,    、  、   。             ,           ,
    GUI   。GUI             ,                      ;           
        。  ,          ,             ——            。       
GUI           ,   gtk+(     C         。   C                  。  ,
           ——                ,             ,         ,   
  Linux     。gtk+           ,        ,                   。),Swing  
     Qt。

QtはwxWidgetsと同様に、標準的なC++ライブラリでもあります.しかし、その文法はJavaのSwingに似ていて、非常にはっきりしていて、信号溝(signal/slot)メカニズムを使って、プログラムをよく理解させています.これも多くの人がQtを優先している重要な原因です.しかし、いわゆる「成也蕭何、敗也蕭何」.このメカニズムはよく知られていますが、Qtのmocを使用してプログラムを前処理する必要があります.標準のmakeまたはnmakeを使用して正常なコンパイルを行うことができ、信号スロットの呼び出しは通常の関数呼び出しより約1桁遅いです.Qtの界面も原生的な風格ではないが,Qtはstyle機構を用いて原生的な界面を非常に巧みにシミュレートした.また,Qtはデスクトップ環境だけでなく,組み込みプラットフォームや携帯電話プラットフォームでも実行できる.
二、Qtの発展の歴史:
Haavard Nord Eirik Chambe-Eng 1991     “Qt”,1994 3 4     ,    Quasar Technologies,
     TrollTech,     Trolltech,    “    ”。 
    2008  ,Nokia    1.5       TrollTech,  Qt     Symbian     。          
       ,   Qt Software。
2009 5 11 ,   Qt Software  Qt             。           ,Qt Software
     Git Gitorious     Web       。 
2012 8 9 ,Digia         Qt            ,    Qt   Android、IOS Window8
   。
2013 7 3 ,Digia  Qt             Qt 5.1     。
2013 12 11 ,Digia  Qt      Qt 5.2     。
2014 4 ,Digia  Qt      Qt Creator 3.1.0     。
2014 5 20 ,Digia  Qt      Qt 5.3     。
Qt      Qt5.11 。

三、Qtの優勢特徴:
Qtが開発したソフトウェアを使用すると、ソースコードを変更することなく、サポートされているプラットフォーム上で同じコードをコンパイルして実行できます.プラットフォームによって自動的にプラットフォーム特有のグラフィックインタフェーススタイルを表現します.長年の発展を経て、Qtは完備したC++グラフィックライブラリを持っているだけでなく、近年のバージョンは次第にデータベース、OpenGLライブラリ、マルチメディアライブラリ、ネットワーク、スクリプトライブラリ、XMLライブラリ、WebKitライブラリなどを集積し、そのコアライブラリもプロセス間通信、マルチスレッドなどのモジュールを加入し、Qtが大規模で複雑なプラットフォーム間アプリケーションを開発する能力を大きく豊かにした.本当の意味でその研究開発の趣旨「Code Less;Create More;Deploy Anywhere.」を実現した.
  1)          :Qt         Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris,
   SunOS,HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX   。
   
  2)Qt      :Qt              ,  Qt        Qt                。
     Qt         signals/slots           callback,                    。
  
  3)Qt     API: Qt      250  C++ ,            collections,serialization,file,
  I/O device,directory management,date/time  。                。
  
  4)Qt  2D/3D    ,    OpenGL。
  
  5)Qt         。
  
  6) XML   。
  

四、Qtに基づいて開発した製品
(1)3D Slicer: a free open source software for visualization and medical image computing;(     VTK        
         ) 

(2)ParaView:       VTK           ,     、     、    、           
            ; 

(3)Google Earth: Google             ; 

(4)Opera:         ,           ; 

(5)Qt Creator: the free software cross-platform integrated development environment from Nokia;(          
        IDE) 

(6)Skype:     P2P VOIP    ; 

(7)VirtualBox: Oracle        ; 

(8)YY  :                         ,           ;
 
(9)    :                 。 

(10)WPS Office:     (Kingsoft)       ,   Office     。