proto-debuger/protoDebuger/ProtoDebug.qml

187 lines
5.5 KiB
QML

import QtQuick 2.0
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.0
import QtQuick.Controls.Material 2.12
Item {
objectName: "ProtoDebug"
// width: parent.width - 80
// height: parent.height
width: 800
height: 600
property var comlist: []
visible: true
property bool uart_open: false
property var showbuf: ""
property var lua_script_text: ""
ColorAnimation {
from: "white"
to: "black"
duration: 200
}
Rectangle{
color: "#aeaeae"
anchors.rightMargin: 0
anchors.bottomMargin: 0
anchors.leftMargin: 0
anchors.topMargin: 0
anchors.fill: parent
scale: 1
transformOrigin: Item.Center
GridLayout {
width: parent.width
height: parent.height
x: 0
y: 0
rows: 3
columns: 2
Label {
id: label
text: qsTr("lua脚本:")
Layout.columnSpan: 1
font.pixelSize: 30
font.bold: true
}
Label {
id: label2
text: qsTr("输出:")
Layout.columnSpan: 1
font.pixelSize: 30
font.bold: true
}
Flickable {
id: flick
Layout.preferredHeight: parent.height - 100
Layout.preferredWidth: parent.width/2 - 20
Layout.columnSpan: 1
contentWidth: lua_script.paintedWidth
contentHeight: lua_script.paintedHeight
clip: true
Layout.leftMargin: 10
ColorAnimation {
from: "white"
to: "white"
duration: 200
}
function ensureVisible(r)
{
if (contentX >= r.x)
contentX = r.x;
else if (contentX+width <= r.x+r.width)
contentX = r.x+r.width-width;
if (contentY >= r.y)
contentY = r.y;
else if (contentY+height <= r.y+r.height)
contentY = r.y+r.height-height;
}
TextEdit {
id: lua_script
focus: true
text: lua_script_text
font.pixelSize: 20
color: "red"
selectByMouse : true
wrapMode: TextEdit.Wrap
onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
}
}
TextArea {
id: text_output
Layout.preferredHeight: parent.height - 100
text: qsTr("")
font.pixelSize: 20
Layout.columnSpan: 1
Layout.preferredWidth: parent.width/2 - 20
background: Rectangle {
border.color: text_output.enabled ? "#21be2b" : "transparent"
}
Layout.leftMargin: 10
}
RowLayout{
visible: true
Layout.columnSpan: 2
Button {
id: button2
text: qsTr("保存lua脚本")
Layout.preferredHeight: 41
Layout.preferredWidth: 116
Layout.leftMargin: 15
Layout.bottomMargin: 10
onClicked: {
lua_script_text = lua_script.text
let ret = DataWrap.saveLuaScript(lua_script_text)
console.log(ret)
if(ret != 0){
tip.text = "保存lua脚本失败"
tip.visible = true
return
}
tip.text = "保存lua脚本成功"
tip.visible = true
}
}
Button {
id: button
text: qsTr("更新lua脚本")
Layout.preferredHeight: 41
Layout.preferredWidth: 116
Layout.bottomMargin: 10
onClicked: {
lua_script_text = lua_script.text
let ret = DataWrap.updateLuaScript(lua_script_text)
if(ret != 0){
tip.text = "更新lua脚本失败"
tip.visible = true
return
}
tip.text = "更新lua脚本成功"
tip.visible = true
}
}
TextEdit {
id: send_data
width: parent.width - 60
height: 30
text: qsTr("Text Edit")
font.pixelSize: 16
}
}
}
}
ToolTip {
id: tip
text: qsTr("")
visible: false
contentItem: Text {
text: tip.text
font: tip.font
color: "#21be2b"
}
background: Rectangle {
border.color: "#21be2b"
}
delay: 100
timeout: 1000
}
function addString(str){
showbuf += str;
text_output.text = showbuf;
}
}