البطاقات
تُستخدم أنواع Kirigami AbstractCard و Card لتنفيذ مكون البطاقة الشائع المستخدم على العديد من منصات الجوال والويب. يمكن استخدام البطاقات لعرض مجموعة من المعلومات أو الإجراءات بطريقة جذابة ومميزة.
يقدم Kirigami أيضًا 3 أنواع من العروض و الموضعات لمساعدتك في تقديم بطاقاتك بتخطيطات جميلة ومستجيبة.
AbstractCard
Kirigami.AbstractCard هو أبسط أنواع البطاقات. إنه مجرد مستطيل بظل، يمكن أن يحتوي على أي Item بداخله. يمكنه أيضًا أن تحتوي Items مخصصة لخصائص header أو footer. في هذه الحالة، Kirigami.Heading هو header الخاص به و Controls.Label هو contentItem للبطاقة.
Kirigami.AbstractCard {
Layout.fillHeight: true
header: Kirigami.Heading {
text: qsTr("AbstractCard")
level: 2
}
contentItem: Controls.Label {
wrapMode: Text.WordWrap
text: "..."
}
}
بطاقة
ترث Kirigami.Card من AbstractCard وتوفر المزيد من الميزات مباشرة. ترث البطاقات نفس header و footer من Abstract Card، لكن يُشجع على استخدام banner ومجموعة من Kirigami.Action في مجموعة actions بدلاً من ذلك.
Kirigami.Card {
actions: [
Kirigami.Action {
text: qsTr("Action1")
icon.name: "add-placemark"
},
Kirigami.Action {
text: qsTr("Action2")
icon.name: "address-book-new-symbolic"
},
// ...
]
banner {
source: "../banner.jpg"
title: "Title Alignment"
// يمكن وضع العنوان في اللافتة
titleAlignment: Qt.AlignLeft | Qt.AlignBottom
}
contentItem: Controls.Label {
wrapMode: Text.WordWrap
text: "My Text"
}
}
CardsLayout
يكون Kirigami.CardsLayout أكثر فائدة عندما لا تكون البطاقات المعروضة منشأة بواسطة نموذج أو تكون منشأة بواسطة نموذج يحتوي دائمًا على عدد قليل جدًا من العناصر. تُعرض كشبكة من عمودين تبقى في المنتصف إذا كان التطبيق واسعًا جدًا، أو تصبح عمودًا واحدًا إذا لم تكن هناك مساحة كافية لعمودين، مثل شاشة الهاتف المحمول.
ملاحظة
CardsListView أنسب للنماذج الأكبر.يمكن توجيه البطاقة أفقيًا اختياريًا. في هذه الحالة، ستكون أعرض من طولها، وتكون أنسب لوضعها في ColumnLayout. إذا كان لا بد من وضعها في CardsLayout، فسيكون لها maximumColumns بقيمة 2 مبدئيًا.
ColumnLayout {
Kirigami.CardsLayout {
Kirigami.Card {
contentItem: Controls.Label {
wrapMode: Text.WordWrap
text: "My Text2"
}
}
Kirigami.AbstractCard {
contentItem: Controls.Label {
wrapMode: Text.WordWrap
text: "My Text"
}
}
Kirigami.Card {
headerOrientation: Qt.Horizontal
contentItem: Controls.Label {
wrapMode: Text.WordWrap
text: "My Text2"
}
}
}
}
CardsListView
Kirigami.CardsListView هو عرض قائمة يمكن استخدامه مع مكونات AbstractCard.
سيقوم CardsListView بتمديد البطاقات الفرعية إلى عرضه الخاص. لذلك يجب استخدام هذا المكون فقط مع البطاقات التي ستبدو جيدة بأي حجم أفقي. لا يُنصح باستخدام مكون Card داخله، إلا إذا كان لديه Qt.Horizontal كخاصية headerOrientation.
Kirigami.CardsListView {
id: view
model: 100
delegate: Kirigami.AbstractCard {
//ملاحظة: لا تضع Layout كـ contentItem أبدًا لأنه سيسبب حلقات ربط
contentItem: Item {
implicitWidth: delegateLayout.implicitWidth
implicitHeight: delegateLayout.implicitHeight
GridLayout {
id: delegateLayout
anchors {
left: parent.left
top: parent.top
right: parent.right
//هام: لا تضع الهامش السفلي أبدًا
}
rowSpacing: Kirigami.Units.largeSpacing
columnSpacing: Kirigami.Units.largeSpacing
columns: width > Kirigami.Units.gridUnit * 20 ? 4 : 2
Kirigami.Icon {
source: "applications-graphics"
Layout.fillHeight: true
Layout.maximumHeight: Kirigami.Units.iconSizes.huge
Layout.preferredWidth: height
}
Kirigami.Heading {
level: 2
text: qsTr("Product ")+ modelData
}
Controls.Button {
Layout.alignment: Qt.AlignRight
Layout.columnSpan: 2
text: qsTr("Install")
}
}
}
}
}