SmartLockerTools/Analyser/qml/Main.qml
2024-09-11 15:45:19 +08:00

132 lines
3.6 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Fluent as Fluent
import Analyser
Window {
id: window
width: 1220
height: 890
visible: true
title: qsTr(Qt.application.name + " " + Qt.application.version)
OperationItem {
id: operationItem
width: 530
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()
}
}
}
}
Fluent.InfoBar{
id:info_bar
root: window
layoutY: 10
}
Connections {
target: App
function onNewLog(text) {
logBrowser.append(text)
}
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)
} else if (level === App.Error) {
info_bar.showError(tip,2000,detailMessage)
} else if (level === 2) {
info_bar.showInfo(tip,2000,detailMessage)
resultBrowser.append(tip+":"+detailMessage)
}
}
function onNewVideoFrame() {
image.source = ""
image.source = "image://videoframe/"
}
}
}