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/" } } }