284 lines
9.7 KiB
QML
284 lines
9.7 KiB
QML
import QtQuick 2.0
|
|
import QtQuick.Controls 2.14
|
|
import QtQuick.Layouts 1.0
|
|
import QtQml 2.3
|
|
|
|
Item {
|
|
objectName: "NetSelect"
|
|
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
|
|
Row{
|
|
Layout.topMargin: 20
|
|
Layout.leftMargin: 20
|
|
Label {
|
|
id: label6
|
|
Layout.leftMargin: 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: 233
|
|
height: 40
|
|
text: qsTr("9001")
|
|
font.italic: false
|
|
font.bold: true
|
|
Layout.columnSpan: 2
|
|
Layout.preferredHeight: 33
|
|
Layout.preferredWidth: 233
|
|
selectionColor: "#f0f0f1"
|
|
cursorVisible: true
|
|
font.pixelSize: 20
|
|
color: "white"
|
|
textMargin: 4
|
|
}
|
|
ComboBox {
|
|
id: conn_type
|
|
Layout.leftMargin: 20
|
|
Layout.topMargin: 20
|
|
width: 143
|
|
height: 40
|
|
|
|
model:[
|
|
"client",
|
|
"server"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
RowLayout{
|
|
spacing: 5
|
|
Row{
|
|
Layout.topMargin: 20
|
|
Layout.leftMargin: 20
|
|
Label {
|
|
id: label7
|
|
text: "协议选择:"
|
|
Layout.leftMargin: 20
|
|
Layout.topMargin: 20
|
|
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_network
|
|
Layout.leftMargin: 20
|
|
Layout.topMargin: 20
|
|
width: 128
|
|
height: 52
|
|
text: qsTr("打开网络")
|
|
|
|
onClicked: {
|
|
if(button_network.text == "打开网络"){
|
|
console.log(proto_combox.currentText)
|
|
let type_network = -1
|
|
if(proto_combox.currentText === "udp" ){
|
|
type_network = 0
|
|
button_network.text = "关闭连接"
|
|
|
|
}
|
|
if(proto_combox.currentText === "tcp" && (conn_type.currentText === "server")){
|
|
type_network = 1
|
|
button_network.text = "正在监听"
|
|
button_close.visible = true
|
|
}
|
|
if(proto_combox.currentText === "tcp" && (conn_type.currentText === "client")){
|
|
type_network = 3
|
|
button_network.text = "正在连接"
|
|
}
|
|
|
|
console.log(hostEdit.text,
|
|
port.text,
|
|
radioSelectWebsocket.checked,
|
|
type_network)
|
|
|
|
let ret = DataWrap.openNetwork(hostEdit.text,
|
|
Number(port.text),
|
|
radioSelectWebsocket.checked,
|
|
type_network)
|
|
|
|
|
|
}else if ((button_network.text === "关闭连接") && (proto_combox.currentText === "udp"))
|
|
{
|
|
console.log("dfdfads")
|
|
DataWrap.closeNetwork();
|
|
button_network.text = "打开网络"
|
|
}
|
|
else if ((button_network.text === "关闭连接") && (proto_combox.currentText === "tcp"))
|
|
{
|
|
console.log("dfdfads")
|
|
DataWrap.closeNetwork();
|
|
button_network.text = "打开网络"
|
|
}
|
|
}
|
|
}
|
|
Button {
|
|
id: button_close
|
|
visible: false
|
|
Layout.leftMargin: 20
|
|
Layout.topMargin: 20
|
|
width: 128
|
|
height: 52
|
|
text: qsTr("停止监听")
|
|
|
|
onClicked: {
|
|
if(button_network.text == "正在监听"){
|
|
button_close.visible = false
|
|
DataWrap.closeNetwork();
|
|
button_network.text = "打开网络"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ToolTip {
|
|
id: tip
|
|
text: qsTr("")
|
|
visible: false
|
|
font.pixelSize: 25
|
|
width: 220
|
|
|
|
contentItem: Text {
|
|
id : tip_item
|
|
text: tip.text
|
|
font: tip.font
|
|
color: "#21be2b"
|
|
}
|
|
|
|
background: Rectangle {
|
|
id: tip_background
|
|
border.color: "#21be2b"
|
|
width: 220
|
|
height: 40
|
|
}
|
|
function success(str){
|
|
tip_item.color = "#21be2b"
|
|
tip.text = str
|
|
tip.visible = true
|
|
}
|
|
function fail(str){
|
|
tip_item.color = "#ff0000"
|
|
tip.text = str
|
|
tip.visible = true
|
|
}
|
|
delay: 100
|
|
timeout: 1000
|
|
}
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
target: DataWrap
|
|
onSendToQml: {
|
|
button_network.text = "关闭连接"
|
|
tip.success("网络连接成功")
|
|
}
|
|
}
|
|
Connections {
|
|
target: DataWrap
|
|
onDisConnected: {
|
|
button_network.text = "打开网络"
|
|
tip.success("网络连接失败")
|
|
}
|
|
}
|
|
}
|