From 428ee6fafef1a499358001a3b93d5a8f34e6d1d3 Mon Sep 17 00:00:00 2001 From: karlis <2995621482@qq.com> Date: Thu, 6 Jul 2023 14:00:55 +0800 Subject: [PATCH] =?UTF-8?q?=20ContenPage=E6=B7=BB=E5=8A=A0NoteList?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AicsKnowledgeBase/NoteListWindow.qml | 5 ++ AicsKnowledgeBase/qml/component/NoteList.qml | 84 +++++++++++++------ AicsKnowledgeBase/qml/page/ContentPage.qml | 51 ++++++++++- AicsKnowledgeBase/res/note.png | Bin 0 -> 6673 bytes 4 files changed, 113 insertions(+), 27 deletions(-) create mode 100644 AicsKnowledgeBase/NoteListWindow.qml create mode 100644 AicsKnowledgeBase/res/note.png diff --git a/AicsKnowledgeBase/NoteListWindow.qml b/AicsKnowledgeBase/NoteListWindow.qml new file mode 100644 index 0000000..5560aee --- /dev/null +++ b/AicsKnowledgeBase/NoteListWindow.qml @@ -0,0 +1,5 @@ +import QtQuick + +Item { + +} diff --git a/AicsKnowledgeBase/qml/component/NoteList.qml b/AicsKnowledgeBase/qml/component/NoteList.qml index c5010c1..539c917 100644 --- a/AicsKnowledgeBase/qml/component/NoteList.qml +++ b/AicsKnowledgeBase/qml/component/NoteList.qml @@ -6,6 +6,46 @@ import "qrc:///AicsKnowledgeBase/qml/global" Item { anchors.fill: parent signal open(string note) + signal createNote + width: parent.width - 8 + property ListModel noteListModel: ListModel { + 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)在确定父子组件之间,同级组件之间的相对位置时非常常用,若使用锚定方式确定子组件与父组件之间的位置关系,使用 top,bottom,left,right, topMargin,bottomMargin,leftMargin,rightMargin进行上下左右对齐,以及对齐后的留白距离。若要使子组件在父组件的水平,垂直居中,使用:" + author: "超级无敌长的账户名" + pageView: 123 + stars: 27 + date: "2022-02-02" + } + ListElement { + uuid: "2" + title: "Qt布局" + brief: "锚定(anchors)在确定父子组件之间,同级组件之间的相对位置时非常常用,若使用锚定方式确定子组件与父组件之间的位置关系,使用 top,bottom,left,right, topMargin,bottomMargin,leftMargin,rightMargin进行上下左右对齐,以及对齐后的留白距离。若要使子组件在父组件的水平,垂直居中,使用:" + author: "超级无敌长的账户名" + pageView: 123 + stars: 27 + date: "2022-02-02" + } + ListElement { + uuid: "2" + title: "Qt布局" + brief: "锚定(anchors)在确定父子组件之间,同级组件之间的相对位置时非常常用,若使用锚定方式确定子组件与父组件之间的位置关系,使用 top,bottom,left,right, topMargin,bottomMargin,leftMargin,rightMargin进行上下左右对齐,以及对齐后的留白距离。若要使子组件在父组件的水平,垂直居中,使用:" + author: "超级无敌长的账户名" + pageView: 123 + stars: 27 + date: "2022-02-02" + } + } ListView { id: listView anchors.fill: parent @@ -18,11 +58,24 @@ Item { id: noteListItemHeader Item { id: noteListItemHeaderItem - // width: ListView.view.width - // height: 48 - // FluText { - // text: "笔记" - // } + width: ListView.view.width + height: 48 + RowLayout { + width: parent.width + FluText { + text: "笔记列表" + font.pixelSize: 18 + font.bold: true + } + FluButton { + id: createNoteButton + text: "新建笔记" + Layout.alignment: Qt.AlignRight + onClicked: { + createNote() + } + } + } } } Component { @@ -54,25 +107,4 @@ Item { 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)在确定父子组件之间,同级组件之间的相对位置时非常常用,若使用锚定方式确定子组件与父组件之间的位置关系,使用 top,bottom,left,right, topMargin,bottomMargin,leftMargin,rightMargin进行上下左右对齐,以及对齐后的留白距离。若要使子组件在父组件的水平,垂直居中,使用:" - author: "超级无敌长的账户名" - pageView: 123 - stars: 27 - date: "2022-02-02" - } - } } diff --git a/AicsKnowledgeBase/qml/page/ContentPage.qml b/AicsKnowledgeBase/qml/page/ContentPage.qml index 90bf486..fccba38 100644 --- a/AicsKnowledgeBase/qml/page/ContentPage.qml +++ b/AicsKnowledgeBase/qml/page/ContentPage.qml @@ -8,8 +8,34 @@ import FluentUI import AicsKB.FileTransferManager import SignalFileOperation 1.0 import "qrc:///AicsKnowledgeBase/qml/page" +import "qrc:///AicsKnowledgeBase/qml/component" FluArea { + Popup { + id: popup + modal: true //模态, 为 true后弹出窗口会叠加一个独特的背景调光效果 + focus: true //焦点, 当弹出窗口实际接收到焦点时,activeFocus将为真 + padding: 0 + closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside + property var raiseItem: null + background: Rectangle { + color: Qt.rgba(0, 0, 0, 0) //背景为无色 + } + FluArea { + width: 350 + height: 500 + backgroundColor: "#f9f9f9" + NoteList { + id: noteList + onOpen: function handle(noteId) { + console.log("open note: " + noteId) + } + onCreateNote: function handle() { + console.log("create note") + } + } + } + } id: content_area paddings: 0 backgroundColor: "#f9f9f9" @@ -76,6 +102,28 @@ FluArea { bold: true } } + ColumnLayout { + id: layout_note + FluIconButton { + id: button_note + iconSize: 15 + iconSource: FluentIcons.QuickNote + text: "笔记" + onClicked: { + popup.open() + } + } + FluText { + text: "" + font.pointSize: 8 + Layout.alignment: button_note.Center + Layout.topMargin: -5 + } + anchors { + verticalCenter: text_title.verticalCenter + right: parent.right + } + } ColumnLayout { id: layout_share FluIconButton { @@ -93,7 +141,7 @@ FluArea { } anchors { verticalCenter: text_title.verticalCenter - right: parent.right + right: layout_note.left } } ColumnLayout { @@ -157,6 +205,7 @@ FluArea { implicitHeight: 100 ColumnLayout { RowLayout { + width: parent.width FluText { padding: 10 text: content_page.publishTime.toDateString() diff --git a/AicsKnowledgeBase/res/note.png b/AicsKnowledgeBase/res/note.png new file mode 100644 index 0000000000000000000000000000000000000000..348ce7706e1c0b59dd130c24a0f1ef0d00fa9e3f GIT binary patch literal 6673 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 q8!NV+u`xpU)9%K_|6@w$$*G#I;*