ナビゲーションシステムのQtのシミュレーション

免責事項:この記事はブロガーオリジナル記事です、続く BY-SAのCC 4.0を 著作権契約、複製、元のソースのリンクと、この文を添付してください。

このリンク:https://www.cnblogs.com/lihuidashen/p/11539755.html

https://mp.weixin.qq.com/s/b-DK1ndudiPtyFpbE8lseQ

動画の効果

 

 

ソフトウェアアーキテクチャ

 

 

 

今の話をし始め、それの

キー:アンカーアンカーのレイアウト

発見
{ 
    上記ID:ディスカバー
    anchors.fill:親// 充填親
}

 

    QMLは、一般的なレイアウトのうちの2つを使用し、それが直接設定値X及びY座標です。一つは、レイアウトの相対位置を使用することであるアンカーレイアウトアンカー、アンカーのレイアウトを使用して、我々はそのような機構のアンカー(アンカー)となるであろう、より統合された、インターフェイスをよりコンパクトにすることができます。アンカーは私たちに二つの要素の相対的な位置を設定するための柔軟性を可能にします。これは、2つの要素間の関係が固定された点が二つの要素の間に形成されたアンカーと同様形成することができます。

 

    行動は、単により強い座標の変化を計算アンカーリンクの一種に似ています。アンカーの相対的位置を説明しているので、そのように使用時にアンカー、我々は、他の要素に対して要素の宣言で2つの要素を、指定しなければなりません。アンカーはItem要素の基本的な特性の一つであるので、全てQML視覚要素に適用されます。

 

アンカー付き

    行と列のより伝統的なグリッドに加えて、Qtのクイックもアンカーのコンセプトのレイアウトプロジェクトを使用するための方法を提供します。左、horizo​​ntalCenter、右、上、verticalCenter、ベースラインと下:各項目は7目に見えない「アンカーライン」のセットを有すると考えることができます。

 

 

 

 

    破線テキストに対応するベースライン(図示せず)。言葉のないプロジェクトでは、それはトップと同じです。Qtのクイックアンカーシステムを使用すると、アンカーライン異なるプロジェクト間の関係を定義することができます。

 

以下を使用し、ここでひとつずつ紹介されていません。

anchors.baseline:AnchorLine 
anchors.baselineOffset:リアル
anchors.bottom:AnchorLine 
anchors.bottomMargin:リアル
anchors.centerIn:項目
anchors.fill:アイテムの
anchors.horizo​​ntalCenter:AnchorLine 
anchors.horizo​​ntalCenterOffset:リアル
anchors.left:AnchorLine 
anchors.leftMargin:本物
anchors.margins:リアル
anchors.mirrored:ブール
anchors.right:AnchorLine 
anchors.rightMargin:リアル
anchors.top:AnchorLine 
anchors.topMargin:realanchors.verticalCenter:AnchorLine 
anchors.verticalCenterOffset:本物

 

    、座標にこの設定を、それは、いくつかの固定位置のノードを入れて、このデモプログラムをチェック

プロパティVAR位置:[Qt.point(80、190)、Qt.point(180、90 )、Qt.point(280、390)、Qt.point(480、90 )、Qt.point(80、590)]

 

図に示した位置決定ノード。

 

 

 

    ここで描かれるQtの純粋なエンターテインメント-アナログ時計を描く  、我々はを参照することができ、前に述べました。

機能drawLine(CTX、色、幅、STARTX、startYと、ENDX、ENDY){ 
    ctx.strokeStyle = 色。
    ctx.lineWidth = 幅; 
    ctx.beginPath(); 
    ctx.moveTo(STARTX、startYと)。
    ctx.lineTo(ENDX、ENDY)。
    ctx.closePath(); 
    ctx.stroke(); 
}

 

画像を描画

// 垂直グリッドを描く
 (ためVAR I = ;私は幅を<0 I = + 20である)drawLine(CTX、" #1 7266fc "、0.5、Iは+ 0.5、0、I +は0.5 高さ); // ドロー水平グリッドのための(VARのJ = 0; J <高さ; + J = 20である)drawLine(CTX、" #1 7266fc "、0.5、0、J + 0.5、幅、J + 0.5 ); // マッピングマーク位置.forEach(関数(ポイント、I){ctx.drawImage(" QRC:/images/map_marker.ico " 、point.x、point.y);});

 

それの本質と考え、サークルスキャンを描きます
用(VARのK = 0; K < 5; K + = 0.5 ){ctx.beginPath()。ctx.arc(半角、halfHeight、R1 + kを、0、にMath.PI * 2 )。ctx.closePath(); ctx.stroke(); ctx.beginPath(); (!最初の)場合ctx.arc(半角、halfHeight、R2 + K、0、にMath.PI * 2 )。ctx.closePath(); ctx.stroke(); }

 

最後に、走査開始タイミングが円を描く(「スキャン」)をクリックし、この絵が現れ、そしてまだ少し涼しいです。

 

 

推奨読書

(読むためにジャンプするタイトルをクリックしてください)

Qtの研究ノート - 強いエントリー

Qtの学習ノートには、背景画像メソッドを追加-qt

Qtの研究ノート - マウスの応答イベントの処理

Qtは、純粋にエンターテインメント - アナログ時計を描きます

Qtの研究ノート - 中秋節、QPainterのは慎重にあなたのための心を描きます

 

 

おすすめ

転載: www.cnblogs.com/lihuidashen/p/11539808.html