main
karlis 2023-07-02 22:39:39 +08:00
parent 60ae1cf7e9
commit fef9e15030
2 changed files with 113 additions and 52 deletions

View File

@ -0,0 +1,78 @@
import QtQuick 2.15
import QtQuick.Layouts
import FluentUI
import "qrc:///AicsKnowledgeBase/qml/global"
Item {
anchors.fill: parent
signal open(string note)
ListView {
id: listView
anchors.fill: parent
spacing: 8
header: noteListItemHeader
model: noteListModel
delegate: noteListItemDelegate
}
Component {
id: noteListItemHeader
Item {
id: noteListItemHeaderItem
// width: ListView.view.width
// height: 48
// FluText {
// text: ""
// }
}
}
Component {
id: noteListItemDelegate
Rectangle {
id: noteListItemRect
width: ListView.view.width
height: 150
MouseArea {
anchors.fill: parent
onClicked: {
open(model.uuid)
}
}
NoteListItem {
id: noteListItem
uuid: model.uuid
width: parent.width
height: parent.height
title: model.title
date: model.date
brief: model.brief
pageView: model.pageView
author: model.author
stars: model.stars
}
}
}
function setListModel(listModel) {
listView.model = listModel
}
ListModel {
id: noteListModel
ListElement {
uuid: "1"
title: "超级无敌报错"
brief: "file:///D:/academic/2023-qtBig/AicsKnowledgeBase_client/AicsKnowledgeBase/qml/component/NoteList.qml:41:21: Unable to assign [undefined] to QString"
author: "admin"
pageView: 123
stars: 27
date: "2022-02-02"
}
ListElement {
uuid: "2"
title: "Qt布局"
brief: "锚定anchors在确定父子组件之间同级组件之间的相对位置时非常常用若使用锚定方式确定子组件与父组件之间的位置关系使用 topbottomleftright topMarginbottomMarginleftMarginrightMargin进行上下左右对齐以及对齐后的留白距离。若要使子组件在父组件的水平垂直居中使用"
author: "超级无敌长的账户名"
pageView: 123
stars: 27
date: "2022-02-02"
}
}
}

View File

@ -3,75 +3,58 @@ import FluentUI
import QtQuick.Layouts import QtQuick.Layouts
FluArea { FluArea {
id: fileItem id: noteItem
property string uuid property string uuid
property string title property string title
property string brief property string brief
property string date property string date
property int pageView property int pageView
property var tags: []
property var notes: []
property int stars property int stars
property var colorList: ["blue", "green", "orange", "red", "yellow", "purple", "pink", "brown", "teal", "cyan", "gray", "darkgray"] property string author
signal tagClicked(string tag)
ColumnLayout { ColumnLayout {
id: row id: row
anchors.fill: parent anchors.fill: parent
anchors.margins: 10 anchors.margins: 10
spacing: 10 spacing: 10
RowLayout {
ColumnLayout { id: titleRow
id: clickable Layout.preferredWidth: parent.width
anchors.fill: parent FluText {
MouseArea { text: title
anchors.fill: parent font.bold: true
onDoubleClicked: { font.pointSize: 15
fileItem.parent.doubleClicked() Layout.alignment: Qt.AlignLeft
}
} }
FluText { FluText {
id: title text: author
text: fileItem.title Layout.alignment: Qt.AlignRight
font{
pointSize: 12
bold: true
}
}
FluText {
id: brief
text: fileItem.brief
}
RowLayout {
id: infoRow
visible: !fileItem.isDir
FluText {
id: date
text: fileItem.date
}
FluText {
id: pageView
text: fileItem.pageView + "浏览"
}
FluText {
id: stars
text: fileItem.stars + "收藏"
}
} }
} }
FluText {
text: " " + brief
Layout.fillWidth: true
wrapMode: Text.WrapAnywhere
elide: Text.ElideRight
maximumLineCount: 3
}
RowLayout { RowLayout {
visible: !fileItem.isDir id: bottomRow
Repeater { Layout.preferredWidth: parent.width
model: fileItem.tags FluText {
delegate: FluTextButton { text: date
text: "#" + fileItem.tags[index] color: "#5F5F5F"
normalColor: colorList[index % colorList.length] Layout.alignment: Qt.AlignLeft
font.pixelSize: 12 }
Layout.preferredWidth: 50 FluText {
onClicked: { text: pageView + " 浏览"
emit: tagClicked(text) color: "#5F5F5F"
} Layout.alignment: Qt.AlignRight
} }
FluText {
text: stars + " 收藏"
color: "#5F5F5F"
Layout.alignment: Qt.AlignRight
} }
} }
} }