最も簡単な方法は、LinuxバージョンのQtをビルドすることです。これがビルドの理由です。
アセンブリに必要な依存関係:
- git-すべての原材料は現在gitorious'eにミラーリングされているため、git'aがないと動作しません
- build-essential -make、gcc、および関連ユーティリティのセット
- xcb -x11バックエンドを構築するにはヘッダーファイルとライブラリが必要です。 Qt5はxlibではなくxcbに移動したことに注意してください!
- ウェイランド -ウェイランドバックエンドを構築する
- mesa -openGLのサポートなしでは、Qtは機能しませんし、機能しません! llvmpipeレベルで少なくともソフトウェアサポートが必要です。
- 時間 -多くのソースがあり、強力なコンピューターまたは多くの時間が必要です
ソースを取得する
ここではすべてが汚いので、これらの目的に便利なディレクトリを見つけて、次のコマンドを実行します。
$ git clone git://gitorious.org/qt/qt5.git qt5
チームがすぐに疑わしく働くという事実にすぐに注意を払う必要があります。 そうでしょう! リポジトリは、クローン作成中にダウンロードされないサブモジュールを積極的に使用します。 次に、それらを初期化する必要があります。
$ cd qt5 $ perl init-repository
そして、私たちは静かにお茶を飲みに行くことができます。 ソースは非常に重くなります! そして時々、とんでもない接続が切断されることがあります。その後、強制キーの初期化を再開します。
更新:
Vassは、カブを完全に白塗りしてソースをより速くダウンロードすることは不可能だと言いました。
ウェブキットがまったく重要でない場合は、 --no-webkitキーをinit-repositoryに追加することをお勧めします 。そうすれば、「このファット感染がダウンロードされるのはいつですか」という質問や「なぜこの脂肪感染は起きません。」
組立:
READMEは、次のコマンドを推奨しています。
$ ./configure -prefix $PWD/qtbase -opensource
しかし、すぐに何かを感じさせるために、-releaseおよび-fastスイッチも追加します。
ここで、コアの数を指定してmakeを実行し、ビジネスに取り掛かります。 サイレントフラグを有効にすることはお勧めしません。バグがある場合があります。
私たちが得たものを見てみましょう:
QtGuiの一部のクラスがQtWidgetsに移動し、QWidgetの代わりにQWindowを使用してウィンドウを作成することに気付くかもしれません。 Q_WS_X11またはQ_WS_WIN32という形式のマクロはもうありませんが、マクロQ_WS_QPAが登場しています。 したがって、ウィンドウシステムへのアプローチは完全に変更され、コンパイル段階ではなく起動段階で切り替えられるようになりました。 アプリケーションをQt5に移植するときは、このことに留意してください。 -platformスイッチを使用して、ウィンドウシステムを切り替えることができます。
例を感じるために、QtCreatorにQt5プロファイルを追加しました。
![](https://habrastorage.org/getpro/habr/post_images/7af/53a/724/7af53a724fdf0dd51b5c2155cf051e11.png)
これで、安全にそれらを収集して実行し、Qt5で古いプログラムを収集することもできます。 熱の熱からのいくつかの例:
![](https://habrastorage.org/getpro/habr/post_images/1b8/5ab/510/1b85ab510f5cfa9612eadd53da2bfcab.png)
![](https://habrastorage.org/getpro/habr/post_images/5dd/7b6/08b/5dd7b608b586b965ecbbf9e653d0c531.png)
外観は、Qt4と比べて何も変わっていませんが、Qt4の内部では既に多少の違いがあります。
QtQuick2と自慢のシーングラフをお試しください
これらの目的のために、qmlsceneユーティリティが存在します。それを使用していくつかの例を実行しましょう。
![](https://habrastorage.org/getpro/habr/post_images/16b/cd5/a05/16bcd5a052592e66c401d8b6adf76966.png)
残念ながら、ビデオがなければ新機能の魅力を理解することは不可能です。これらの目的のためには、YouTubeでビデオ録画を検索することをお勧めします。 一般に、LinuxのQtQuick2は多少奇妙に動作しますが、第1にQtQuick1よりスムーズに動作するとは言いません。第2に、一部のデモが動作しない、またはクラッシュします。 接続されているものでは、ビデオドライバーの湿気やシーングラフ自体ではまだ明確ではありませんが、ラズベリービデオではすべてがスムーズに機能します。 APIの変更については詳しく調べませんでしたが、シェーダーとキャンバスAPIの存在にすぐに気付きました。 これにより、C ++に頼らずにアプリケーションを作成するのがさらに簡単になりました。
QtWaylandを感じる
QtWaylandモジュールをビルドするには、qmakeを実行し、自分のディレクトリでコマンドを実行する必要があります。 同時に、Qt5のqmakeを使用していることを確認してください。 その後、ウェイランド用のバックエンドプラグインが組み立てられ、ウェイランド作曲家の例がいくつか作成されます。 これらの中で最も興味深いのはqml-compozitorで、そのコードは完全にqmlで記述されています! 次のような瞬間に見えます:
![](https://habrastorage.org/getpro/habr/post_images/036/f0e/756/036f0e75679ca82f2a19c6bf2b920955.png)
そして、あらゆる機会に落ちる。 weston Qt内では、アプリケーションははるかに安定していますが、ウィンドウのサイズを変更しようとするとクラッシュすることもあります。 一般的に、興味深いの始まりですが、仕事はまだ無限です。
気になっている人は、ここでこのデモを組み立ててみてください。今ではそれをベースにした画像エディタを作成していますが、うまく動作します。
一般的な印象
Qtプラットフォームの抽象化は、クロスプラットフォームアプリケーションを作成する上で間違いなく大きな前進ですが、それに慣れる必要があり、#ifdefsを使用して古いアプローチから離脱する必要があります。 プラットフォームの定義はコンパイル中ではなく実行時にポストされるという事実に注意する必要があります。アプリケーションが不適切に設計されている場合、パフォーマンスが低下します。
モジュールへの分割は、はるかに論理的になりました。 現在、個別のQtMobilityプロジェクトはありません。その成果はすべてmasterブランチにあります。 また、Qt Quickアプリケーションを作成するために、ウィジェットのある非常に厚いライブラリをドラッグする必要がなくなりました。
Qt Scene Graphはまだ非常に未加工であるため、より慎重に注意する必要があります。
Qt Waylandはまだ非常に未加工ですが、作曲家のための興味深いアイデアを示しています。 クールなプロジェクトがそのベースで表示される可能性があります。
アプリケーションをQt5に移植するプロセスは、基本的には、単純にプロファイルを整理し、そこにウィジェットモジュールを追加し、包含フィックスに追加するだけです。 移動レベルの恐怖Qt3> Qt4いいえ!