SmartLockerTools/Analyser/qml/Main.qml
luocai 881048a286
All checks were successful
Build Applications / PullDocker (push) Successful in 3s
Build Applications / Build (push) Successful in 5m14s
Windows CI / build (push) Successful in 8m3s
reset module before ota.
2024-11-08 18:26:33 +08:00

99 lines
2.8 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Fluent as Fluent
import Analyser
Window {
id: window
width: 1120
height: 650
visible: true
title: qsTr(Qt.application.name + " " + Qt.application.version)
OperationItem {
id: operationItem
width: 530
anchors.top: parent.top
}
ColumnLayout {
anchors.left: operationItem.right
anchors.right: parent.right
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
Item {
Image {
id: image
property real aspectRatio: 600 / 800
anchors.centerIn: parent
width: Math.min(parent.width, parent.height * aspectRatio)
height: width / aspectRatio
cache: false
fillMode: Image.PreserveAspectFit
source: "image://videoframe/"
}
Image {
anchors.fill: image
source: "qrc:/qt/qml/Analyser/resources/palm-middle.png"
}
}
Item {
LogView {
id: logBrowser
anchors.fill: parent
}
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)
}
}
function onNewVideoFrame() {
image.source = ""
image.source = "image://videoframe/"
}
}
}