Qt Quickの新機能の概要

Qt 5.1のリリースに伴い、多くの新機能がQt Quickに追加されました。その概要については、この記事で説明します。 Desktop Components Projectに含まれていた機能のほとんどは、Qt Quickの正式な一部になりました。 最も人気のあるのはQtQuick.Controlsですが、関連する多くの機能が追加されました。これについてはこの記事で説明します...

レイアウト


anchorsanchors既にQt Quickに大きな柔軟性を提供していましたが、サイズ変更可能なユーザーインターフェイスでそれらを使用することは難しく、退屈になりました。
既存のanchorsベースのメソッドを補完するものとしてQtQuick.Layoutsを追加することで、最小および最大size hintsを観察し、 expandingまたはfixed要素を簡単な方法で宣言expandingことにより、複雑なサイズ変更可能なレイアウトを作成できます。
以前は、レイアウトはここに記述されていました



コントロール




Qt Quickのコントロールは、本質的にウィジェットに相当します。 あなたがすでに知っていて、非常に期待されているコントロールのほとんどは、 buttonscombo boxspin boxgroup boxslidersprogress barstext fieldsmenusです。
同じQt Quickを使用してゼロから作成されたのはもちろん、既存のQt Quickコードで使用できます。






視聴回数


基本的なコントロールに加えて、新しいビューのセットが追加されました。 左側の図はSplitViewを示しており 、プレゼンテーション要素のサイズを変更するための垂直または水平ラベルを追加できます。
ScrollViewは、スクロールバーとフレームのサポートを追加することにより、既存のFlickable要素を補完します。 ScrollViewは、たとえば、スクロールバーをListViewに追加するために、個別に使用することも、 Flickableと組み合わせて使用​​することもできます。


ListViewは、当時は非常に柔軟性がありましたが、従来のテーブルビューを作成することは依然として問題でした。 この状況を変更するために、 TableViewが追加され(左側に表示)、カスタムスタイルのサポートと、列と行のサイズ変更を提供します。






ほとんどのコントロールとビューは、組み合わせて異なる方法で構成できます。 このようにして、アプリケーションに対して完全にユニークなインターフェースを作成できます。











デスクトップでのQt Quick開発の改善に主眼が置かれているという事実にもかかわらず、コントローラーはサポートされているすべてのプラットフォームで動作します。 ただし、同じビューの対応する適応なしに、デスクトップアプリケーションがタブレット上で同じように見えて動作することを期待しないでください。 タブレットおよびモバイルデバイス用のアプリケーションの開発を簡素化するために、 StackViewが追加されました(左の画像を参照)。これにより、典型的なスタックナビゲーション(アプリケーションの複数のページ)が提供されます。





QMLのプラットフォーム


Qt Quickでクロスプラットフォームアプリケーションを作成する際の一般的な問題は、UIを異なるプラットフォームに適合させることがそれほど簡単ではないことでした。 これらの困難からあなたを救うために、グローバルなQt.platform.osプロパティを介してQMLでプラットフォームを直接表示するようになりました。 可能な値:

標準ダイアログ


QtQuick.Dialogsインポートにより、いくつかの新しい標準ダイアログが表示されます。 最初はColorDialogFileDialogのみがサポートされますが、今後のリリースではダイアログボックスを追加する予定です。

ウィンドウの改善


Qt 5.0でQt Quickのウィンドウ宣言のサポートが追加され、5.1では処理が大幅に改善されました。 別のウィンドウでウィンドウを宣言すると、暗黙的に親(ウィンドウが宣言されたWindowが割り当てられます。 実際には、これは、モーダルダイアログボックスが本来どおりに動作し、子ウィンドウがデフォルトで親の中央に正しく配置されることを意味します。 さらに、ウィンドウのクローズ要求を正しく処理できるように、クローズ信号が追加されました。

テキストドキュメントとC ++



既存のTextEditフォーマットされたテキストを表示するだけに制限されていました。 最も複雑なQtアプリケーションでは、テキストドキュメントにアクセスして、構文の強調表示や印刷サポートなどの高度な機能を提供する必要があります。 なぜなら この機能を使用するには、C ++プラグインプラグインが必要TextArea 。これは、 TextEditと新しいTextArea両方から利用可能になりました。 これにより、これらの機能をQt Quickアプリケーションに組み込むことができます。 左のスクリーンショットでわかるように、古き良きTextEdit例は、この機能を使用してQt Quickに移植されました。


ApplicationWindow


ApplicationWindowはQQuickWindowに似ていますが 、QML 特定のMenuBarToolBar、およびStatusBarにウィンドウを設定するサポートを追加します

QQmlApplicationEngine


Qt 5.0では、Qt Quickアプリケーションは通常、C ++でQQuickViewを宣言し、そのURLを設定することにより作成されました。 このアプローチの欠点は、C ++を使用して幅、高さなどのプロパティを設定する必要があることです。 Qt 5.1では、 WindowまたはApplicationWindowのルート要素として使用して、Qt Quickを完全に制御することを推奨しています。 このユースケースを少し簡単にするために、 QQmlApplicationEngineが追加されました-必要なのはQt Quickウィンドウを設定し、必要な翻訳ファイルを選択するだけです。その後、 quit()アプリケーション信号が暗黙的にルートウィンドウに接続されます。
 #include <QGuiApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine("main.qml"); return app.exec(); } 

ウィジェットにQt Quickを埋め込む


Qtブログでは既にこれについて書いていますが、ウィジェットベースのアプリケーションにQt Quick 2を埋め込むためのサポートされている方法が追加されました。 これは、新しいQWidget :: createWindowContainer()関数を使用して実現されます。

おわりに


この記事では、すべての革新について説明することはできません。そのため、随時ドキュメントを確認して読んでください。 上記のすべては、当然Qt 5.1 RCに含まれています。 また、 バグトラッカーで見つかった問題を報告することを忘れないでください。

Source: https://habr.com/ru/post/J184406/


All Articles