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