SmartLockerTools/Analyser/qml/Main.qml

134 lines
3.7 KiB
QML
Raw Normal View History

2024-06-13 15:41:40 +08:00
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
2024-09-05 16:36:54 +08:00
import Fluent as Fluent
2024-06-13 15:41:40 +08:00
import Analyser
Window {
2024-09-05 16:36:54 +08:00
id: window
width: 1220
height: 890
2024-06-13 15:41:40 +08:00
visible: true
2024-06-21 18:08:23 +08:00
title: qsTr(Qt.application.name + " " + Qt.application.version)
2024-06-13 15:41:40 +08:00
OperationItem {
id: operationItem
2024-09-05 16:36:54 +08:00
width: 510
2024-06-13 15:41:40 +08:00
anchors.top: parent.top
}
Item {
id: resultGroupBox
anchors.top: parent.top
anchors.right: parent.right
anchors.bottom: parent.bottom
width: 220
Text {
id: resultGroupBoxTitle
text: "识别结果"
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: 30
}
ScrollView {
id: resultView
anchors.left: parent.left
anchors.right: parent.right
anchors.top: resultGroupBoxTitle.bottom
anchors.bottom: parent.bottom
TextArea {
id: resultBrowser
font.pixelSize: 14
readOnly: true
wrapMode: TextArea.WordWrap
}
}
Button {
text: "清空"
anchors.right: parent.right
anchors.bottom: parent.bottom
onClicked: resultBrowser.clear()
}
}
ColumnLayout {
anchors.left: operationItem.right
anchors.right: resultGroupBox.left
anchors.top: parent.top
anchors.bottom: parent.bottom
TabBar {
id: bar
width: parent.width
TabButton {
implicitWidth: 100
text: qsTr("视频流")
}
TabButton {
text: qsTr("日志")
}
}
StackLayout {
width: parent.width
currentIndex: bar.currentIndex
clip: true
Image {
id: image
cache: false
fillMode: Image.PreserveAspectFit
rotation: 90
source: "image://videoframe/"
}
Item {
ScrollView {
id: view
anchors.fill: parent
TextArea {
id: logBrowser
readOnly: true
wrapMode: TextArea.WordWrap
}
}
Button {
text: "清空"
anchors.right: parent.right
anchors.bottom: parent.bottom
onClicked: logBrowser.clear()
}
}
}
}
2024-09-05 16:36:54 +08:00
Fluent.InfoBar{
id:info_bar
root: window
layoutY: 10
}
2024-06-13 15:41:40 +08:00
Connections {
target: App
function onNewLog(text) {
logBrowser.append(text)
}
2024-09-05 16:36:54 +08:00
function onNewStatusTip(level, tip, detailMessage) {
if (level === App.Tip) {
info_bar.showSuccess(tip,2000,detailMessage)
} else if (level === App.Warnging) {
info_bar.showWarning(tip,2000,detailMessage)
2024-06-13 15:41:40 +08:00
} else if (level === 1) {
statusTip.icon = "../resources/warning.svg"
2024-06-21 18:08:23 +08:00
statusTip.color = "#FAFAD2"
2024-06-13 15:41:40 +08:00
statusTip.show(tip, 2000)
} else if (level === 2) {
2024-09-05 16:36:54 +08:00
info_bar.showInfo(tip,2000,detailMessage)
resultBrowser.append(tip+":"+detailMessage)
2024-06-13 15:41:40 +08:00
}
}
function onNewVideoFrame() {
image.source = ""
image.source = "image://videoframe/"
}
}
}