width/height
とimplicitWidth/Height
の違いは何ですか?正規表現の代わりに暗黙の次元を設定する必要があるのはいつですか?コンポーネント/アイテムからレギュラーではなく暗黙のディメンションを要求する必要があるのはいつですか?QMLのwidth、height、およびimplicitWidth/Heightと対応するユースケースの違い
答えて
一般的に、implicitHeight/Width
の使用は再利用可能なコンポーネント内でのみ意味があります。
このサイズを強制することなくItemの自然なサイズのヒントを示します。
例としてImage
を考えてみましょう。画像の自然なサイズは、画像ファイルの1つのピクセルを画面上の1つのピクセルにマッピングします。しかし、それは私たちがそれを伸ばすことを可能にするので、サイズは強制されず、上書きすることができます。
ここで、未知の次元の写真を含むギャラリーを作成したいとしましょう。必要に応じて拡大するだけではなく、縮小したいと考えています。そのため、画像の自然な大きさを保存する必要があります。つまり、暗示的な高さが作用する場所です。
Image {
width: Math.max(150, implicitWidth)
height: Math.max(150, implicitHeight)
}
カスタムコンポーネントでは、サイズの定義方法を選択できます。
1つの選択肢は、おそらくこのような成分root
-node、に対するすべての次元有すること、である。この場合
Item {
id: root
Rectangle {
width: root.width * 0.2
height: root.height * 0.2
color: 'red'
}
Rectangle {
x: 0.2 * root.width
y: 0.2 * root.height
width: root.width * 0.8
height: root.height * 0.8
color: 'green'
}
}
を、オブジェクトのない自然なサイズがありません。すべては、コンポーネントに対して設定したサイズごとに完璧に機能します。
一方、自然なサイズのオブジェクトがあるとします。あなたはこの例では、それ
Item {
id: root
property alias model: repeater.model
Repeater {
id: repeater
delegate: Rectangle {
width: 100
height: 100
x: 102 * index
y: 102 * index
}
}
}
で絶対値を持っている場合は、コンテンツがアイテムをprotudeしない自然なサイズに関する情報をユーザに提供する必要があります。ユーザは、より小さいサイズを設定し、突起に対処することを依然として決める可能性がある。それを切り抜くことによって、しかし彼は彼の決定をするために自然なサイズに関する情報を必要とする。
多くの場合、childrenRect.height/width
はimplcitHeight/Width
の良い措置ですが、これは良い考えではない例があります。 - 例えば商品の内容がx: -500
の場合
Flickable
実際の例は、独自のサイズより大きなオブジェクトを含むように特別に設計されています。 Flickable
のサイズをコンテンツと同じにすることは自然ではありません。
カスタムコンポーネントでscale
を使用する場合、childrenRectはスケーリングについて認識しないため、注意してください。
Item {
id: root
implicitWidth: child.width * child.scale
implicitHeight: child.height * child.scale
Rectangle {
id: child
width: 100
height: 100
scale: 3
color: 'red'
}
}
そして、あなたのコメントへ:implicitWidth /高さの代わりに、コンポーネントのルートの寸法の幅/高さを設定を設定した方がよい理由を私は理解していません。
implicitWidht/Height
は必須ではありません - QtQuickはそれらなしで行うことができます。便宜のために存在し、条約とする。親指の
ルールあなたは、再利用可能なコンポーネントのルート・ノードの大きさを設定したい場合は、
implicitWidth/Height
を設定します。
ノードがプロパティとして公開されている場合は、非ルートノードに設定することもあります。
理由がある場合(多くの公式コンポーネントには何も付属していません)、そのようにしてください。
コンポーネントを使用する場合は、width/height
と設定します。
私は決定的な答えはありませんが、私が知ったことを教えてくれます。まず、from the documentation:
implicitWidth:何の幅または高さ が指定されていない場合は、実際の
は、項目の自然な幅や高さを定義します。ほとんどの項目について
デフォルトの暗黙的なサイズは0x0の、本来の暗黙の 例えば、オーバーライドすることはできませんサイズ、
Image
とText
を持って しかし、いくつかの項目です。
しかしless informative for width:
幅
は、アイテムの位置とサイズを定義します。
width
およびheight
は、シーン内のアイテムの実際のサイズを反映しています。暗黙的なサイズは、アイテムそのものの固有の性質の一種です。
次のように私はそれらを使用する:私は、新しいアイテムを作成し、サイズを変更することができる場合、私は、内部オブジェクト暗黙のサイズを設定します。オブジェクトを使用しているときに、実際にはの外から実際にサイズをに設定します。
オブジェクトの暗黙のサイズは、高さと幅を設定することで上書きできます。
例:TextWithBackground.qml
Item {
implicitWidth: text.implicitWidth
implicitHeight: text.implicitHeight
// the rectangle will expand to the real size of the item
Rectangle { anchors.fill: parent; color: "yellow" }
Text { id: text; text: "Lorem ipsum dolor..." }
}
例:いくつかの要素について
1 MyWindow.qml
Item {
width: 400
height: 300
TextWithBackground {
// half of the scene, but never smaller than its implicitWidth
width: Math.max(parent.width/2, implicitWidth)
// the height of the element is equal to implicitHeight
// because height is not explicitly set
}
}
)は、テキストと同様に、暗黙的な高さに依存します(暗黙的ではない)幅。
2)暗黙的なサイズは、通常、その子の暗黙のサイズに依存します。
要約:暗黙的なサイズは、オブジェクトが占有したい領域です。サイズは、実際に占有する領域です。 – Felix
'Text'の場合、' implicitWidth'は、折り返しがない場合にテキストが占有する幅です。 'contentWidth'はラッピングがある場合の' Item'の実際の幅です(ラッピングがない場合は 'implicitWidth'と同じです)。 – GrecKo
私はこれも私がそれを理解した方法だと思います。したがって、要約すると、コンポーネントのディメンションを「プリセット」し、それを上書きするときには通常のディメンションを使用する暗黙のディメンションを使用します。暗黙の次元は、通常の幅/高さが設定されていない場合のフォールバック値のようなものです。私はここで理にかなっていますか? – Silex
- 1. p5.js - random()、height、およびwidthは定義されていませんか?
- 2. CSS 100%height on width
- 3. ユースケースとユーザーストーリーの違いは?
- 4. カテゴリ、サブカテゴリ、および製品のスラッグURLに対応するラーラルルートモーダルバインド
- 5. ピアソンおよびスピアマン相関とMATLABに対応する95%および99%の信頼水準
- 6. jquery .height()とspanタグの.width()の結果が一貫しない
- 7. $(ウィンドウ).width()と$(ドキュメント).width()の相違点
- 8. 違いスワップおよびページング
- 9. Interface Builderの "Width is height"制約
- 10. WP-APIのGETおよびPOST JSONスキームの違いに対処する方法
- 11. @media(min-width:)および(max-width:)クエリが正しく機能しない
- 12. akkaクラスタ対応ルーターとakkaクラスタシャーディングの異なるユースケース?
- 13. ネイティブおよびAndroid 7のNDK制限への対応
- 14. メディアクエリmax-widthとmax-device-widthの違いは何ですか?
- 15. CSSによるDIVのWIDTHとHEIGHTの問題(firefoxは機能しません)
- 16. 対応する性別および年齢と一致する「uniqid」。
- 17. 違いIEおよびWebkitの
- 18. glMatrixMode(GL_PROJECTION)の違い。およびglMatrixMode(GL_MODELVIEW);
- 19. エラー:SignatureDoesNotMatch、S3対応のAWS-SDK gem、paperclip 3.0.1およびレール3.2
- 20. ユースケースの#pragma開始および#pragma出口
- 21. width/height 'size'パラメータをサポートしていないget_serving_urlの回避策?
- 22. img height "jumps" width:100%on site load
- 23. ActiveRecordにおけるベース、スキーマ、およびマイグレーションの違い
- 24. WPF ColumnDefinitionsのWidthおよびMaxWidthプロパティが機能しません
- 25. ネイティブスクリプトとネイティブおよびイオンフレームワークとの違い
- 26. android - calculateInSampleSize、width> heightの場合、Math.roundはheight(height/reqHeight)を扱うのはなぜですか?
- 27. jquery .css、.height、asp.netの.widthを簡単に使用する
- 28. パーティション、ディメンション、およびメジャーグループのプロアクティブキャッシングとの違い
- 29. jQueryの.width()、style.width、jQuery .css( 'width')の違いは何ですか?
- 30. コマンドラインcurlとプロキシおよび応答ステータスコード
大きな質問です!私はかなりこれも苦労してきました! –
優秀! QMLを使い始めると、たくさんの人々がこれに苦しんでいます。 – derM