proto-debuger/protoDebuger/NetSelect.qml

228 lines
7.6 KiB
QML

import QtQuick 2.0
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.0
import QtQml 2.3
Item {
id: element
width: 800
height: 600
visible: true
ColorAnimation {
from: "white"
to: "black"
duration: 200
}
Rectangle{
color: "#aeaeae"
anchors.rightMargin: 0
anchors.bottomMargin: 0
anchors.topMargin: 0
anchors.fill: parent
scale: 1
transformOrigin: Item.Center
Column {
anchors.fill: parent
spacing: 6
width: parent.width
height: parent.height
RowLayout {
spacing: 5
Label {
id: label6
Layout.leftMargin: 20
Layout.topMargin: 20
text: qsTr("打开端口: ")
Layout.preferredHeight: 40
renderType: Text.QtRendering
Layout.preferredWidth: 125
wrapMode: Text.NoWrap
font.pointSize: 20
}
TextEdit {
id: port
Layout.leftMargin: 20
Layout.topMargin: 20
width: 80
height: 40
text: qsTr("9001")
font.italic: false
font.bold: true
Layout.columnSpan: 2
Layout.preferredHeight: 33
Layout.preferredWidth: 50
selectionColor: "#f0f0f1"
cursorVisible: true
font.pixelSize: 20
}
RadioButton {
id: isServer
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("服务端")
checked: true
onClicked:{
if(isServer.checked == true){
isServer.checked = false
isServer.checkable = false
}else{
isServer.checked = true
isServer.checkable = true
}
}
}
}
RowLayout{
spacing: 5
Label {
id: label7
Layout.leftMargin: 20
Layout.topMargin: 20
text: qsTr("协议选择: ")
Layout.preferredHeight: 40
renderType: Text.QtRendering
Layout.preferredWidth: 125
wrapMode: Text.NoWrap
font.pointSize: 20
}
ComboBox {
id: proto_combox
Layout.leftMargin: 20
Layout.topMargin: 20
width: 143
height: 40
model:[
"udp",
"tcp"
]
}
RadioButton {
id: radioSelectWebsocket
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("websocket")
checkable: true
checked: true
onClicked:{
if(radioSelectWebsocket.checked == true){
radioSelectWebsocket.checked = false
radioSelectWebsocket.checkable = false
}else{
radioSelectWebsocket.checked = true
radioSelectWebsocket.checkable = true
}
}
}
}
RowLayout{
spacing: 5
Label {
id: label8
Layout.leftMargin: 20
Layout.topMargin: 20
text: qsTr("地址: ")
Layout.preferredHeight: 40
renderType: Text.QtRendering
wrapMode: Text.NoWrap
font.pointSize: 20
}
TextEdit {
id: hostEdit
Layout.leftMargin: 20
Layout.topMargin: 20
width: 233
height: 40
text: qsTr("127.0.0.1")
font.italic: false
font.bold: true
Layout.columnSpan: 2
Layout.preferredHeight: 33
Layout.preferredWidth: 233
selectionColor: "#f0f0f1"
cursorVisible: true
font.pixelSize: 20
}
}
RowLayout{
spacing: 5
Button {
id: button
Layout.leftMargin: 20
Layout.topMargin: 20
width: 128
height: 52
text: qsTr("打开网口")
onClicked: {
console.log(hostEdit.text)
// TYPE_UDP_SERVER = 0,
// TYPE_TCP_SERVER = 1,
// TYPE_UDP_CLIENT = 2,
// TYPE_TCP_CLIENT = 3,
// Q_INVOKABLE int openNetwork(QString ip,uint32_t port,bool is_ws,int type);
console.log(proto_combox.currentText)
let type_network = -1
if(proto_combox.currentText == "udp" && isServer.checked){
type_network = 0
}
if(proto_combox.currentText == "udp" && !isServer.checked){
type_network = 2
}
if(proto_combox.currentText == "tcp" && isServer.checked){
type_network = 1
}
if(proto_combox.currentText == "tcp" && !isServer.checked){
type_network = 3
}
console.log(hostEdit.text,
port.text,
radioSelectWebsocket.checked,
type_network)
let ret = DataWrap.openNetwork(hostEdit.text,
Number(port.text),
radioSelectWebsocket.checked,
type_network)
if(ret != 0){
tip.text = "网络连接失败"
tip.visible = true
return
}
tip.text = "网络连接成功"
tip.visible = true
}
}
}
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
}
}
}
}