proto-debuger/protoDebuger/NetSelect.qml

228 lines
7.6 KiB
QML
Raw Normal View History

2021-04-10 14:22:41 +00:00
import QtQuick 2.0
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.0
2021-05-01 15:41:40 +00:00
import QtQml 2.3
2021-04-10 14:22:41 +00:00
Item {
id: element
2021-05-01 15:41:40 +00:00
2021-04-24 17:21:31 +00:00
width: 800
height: 600
2021-04-10 14:22:41 +00:00
visible: true
ColorAnimation {
from: "white"
to: "black"
duration: 200
}
Rectangle{
color: "#aeaeae"
2021-04-24 17:21:31 +00:00
anchors.rightMargin: 0
anchors.bottomMargin: 0
anchors.topMargin: 0
anchors.fill: parent
2021-04-10 14:22:41 +00:00
scale: 1
transformOrigin: Item.Center
2021-04-24 17:21:31 +00:00
Column {
anchors.fill: parent
spacing: 6
width: parent.width
height: parent.height
2021-05-01 15:41:40 +00:00
RowLayout {
2021-04-24 17:21:31 +00:00
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 {
2021-05-01 15:41:40 +00:00
id: port
2021-04-24 17:21:31 +00:00
Layout.leftMargin: 20
Layout.topMargin: 20
2021-04-29 14:26:45 +00:00
width: 80
2021-04-24 17:21:31 +00:00
height: 40
text: qsTr("9001")
font.italic: false
font.bold: true
Layout.columnSpan: 2
Layout.preferredHeight: 33
2021-05-01 06:09:18 +00:00
Layout.preferredWidth: 50
2021-04-24 17:21:31 +00:00
selectionColor: "#f0f0f1"
cursorVisible: true
font.pixelSize: 20
}
2021-05-01 06:09:18 +00:00
2021-04-29 14:26:45 +00:00
RadioButton {
2021-05-01 15:41:40 +00:00
id: isServer
2021-04-29 14:26:45 +00:00
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("服务端")
checked: true
onClicked:{
2021-05-01 15:41:40 +00:00
if(isServer.checked == true){
isServer.checked = false
isServer.checkable = false
2021-04-29 14:26:45 +00:00
}else{
2021-05-01 15:41:40 +00:00
isServer.checked = true
isServer.checkable = true
2021-04-29 14:26:45 +00:00
}
}
}
2021-04-24 17:21:31 +00:00
}
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 {
2021-05-01 15:41:40 +00:00
id: proto_combox
2021-04-24 17:21:31 +00:00
Layout.leftMargin: 20
Layout.topMargin: 20
width: 143
height: 40
2021-04-10 14:22:41 +00:00
2021-04-24 17:21:31 +00:00
model:[
"udp",
"tcp"
]
}
RadioButton {
2021-04-29 14:26:45 +00:00
id: radioSelectWebsocket
2021-04-24 17:21:31 +00:00
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("websocket")
checkable: true
checked: true
onClicked:{
2021-05-01 15:41:40 +00:00
if(radioSelectWebsocket.checked == true){
radioSelectWebsocket.checked = false
radioSelectWebsocket.checkable = false
}else{
radioSelectWebsocket.checked = true
radioSelectWebsocket.checkable = true
}
2021-04-24 17:21:31 +00:00
}
2021-04-10 14:22:41 +00:00
}
2021-04-24 17:21:31 +00:00
}
2021-05-01 15:41:40 +00:00
2021-04-24 17:21:31 +00:00
RowLayout{
spacing: 5
2021-04-11 03:28:04 +00:00
2021-04-24 17:21:31 +00:00
Label {
id: label8
Layout.leftMargin: 20
Layout.topMargin: 20
2021-04-29 14:26:45 +00:00
text: qsTr("地址: ")
2021-04-24 17:21:31 +00:00
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("打开网口")
2021-04-11 03:28:04 +00:00
2021-04-29 14:26:45 +00:00
onClicked: {
2021-05-01 15:41:40 +00:00
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
2021-04-29 14:26:45 +00:00
}
2021-04-24 17:21:31 +00:00
}
2021-04-10 14:22:41 +00:00
}
2021-05-01 15:41:40 +00:00
ToolTip {
id: tip
text: qsTr("")
visible: false
contentItem: Text {
text: tip.text
font: tip.font
color: "#21be2b"
}
2021-04-24 17:21:31 +00:00
2021-05-01 15:41:40 +00:00
background: Rectangle {
border.color: "#21be2b"
}
delay: 100
timeout: 1000
}
2021-04-10 14:22:41 +00:00
}
}
}