import QtQuick import QtQuick.Controls import QtQuick.Layouts import AntiClipSettings Popup { id: root parent: Overlay.overlay anchors.centerIn: Overlay.overlay modal: true closePolicy: Popup.CloseOnEscap | Popup.NoAutoClose property int inputHeight: 50 background: Rectangle { radius: 8 } contentItem: ColumnLayout { anchors.centerIn: parent Row { spacing: 10 Label { text: "模式" width: 100 anchors.verticalCenter: parent.verticalCenter } RadioButton { id: dhcpMode text: "DHCP" checked: App.currentNetworkInfomation.dhcp } RadioButton { id: staticMode text: "静态IP" checked: !App.currentNetworkInfomation.dhcp } } Row { spacing: 5 visible: staticMode.checked Row { width: 100 anchors.verticalCenterOffset: -10 anchors.verticalCenter: parent.verticalCenter Label { text: "设备IP" } Label { color: "red" text: "*" } } IpTextField { id: ipInput height: inputHeight width: 350 text: App.currentNetworkInfomation.ip } } Row { spacing: 5 visible: staticMode.checked Row { width: 100 anchors.verticalCenterOffset: -10 anchors.verticalCenter: parent.verticalCenter Label { text: "子网掩码" } Label { color: "red" text: "*" } } IpTextField { id: netmaskInput width: 350 height: inputHeight text: App.currentNetworkInfomation.netmask } } Row { spacing: 5 visible: staticMode.checked Label { anchors.verticalCenter: parent.verticalCenter text: "设备网关" anchors.verticalCenterOffset: -10 width: 100 } IpTextField { id: gatewayInput width: 350 height: inputHeight text: App.currentNetworkInfomation.gateway canEmpty: true } } Row { spacing: 5 visible: false // staticMode.checked 暂时不用设置 Label { anchors.verticalCenter: parent.verticalCenter text: "DNS服务器" anchors.verticalCenterOffset: -10 width: 100 } IpTextField { id: dnsInput width: 350 height: inputHeight text: App.currentNetworkInfomation.dns canEmpty: true } } Row { Layout.rightMargin: 20 Layout.alignment: Qt.AlignRight spacing: 20 Button { text: "保存" onClicked: { ipInput.validate() netmaskInput.validate() gatewayInput.validate() dnsInput.validate() if (dhcpMode.checked || (staticMode.checked && ipInput.valid && netmaskInput.valid && gatewayInput.valid && dnsInput.valid)) { App.updateNetworkInfomation(dhcpMode.checked, ipInput.text, netmaskInput.text, gatewayInput.text, dnsInput.text) networkPopup.close() } } } Button { text: "取消" onClicked: root.close() } } } onVisibleChanged: { if (visible) { ipInput.reset() netmaskInput.reset() gatewayInput.reset() dnsInput.reset() dhcpMode.checked = App.currentNetworkInfomation.dhcp staticMode.checked = !App.currentNetworkInfomation.dhcp ipInput.text = App.currentNetworkInfomation.ip netmaskInput.text = App.currentNetworkInfomation.netmask gatewayInput.text = App.currentNetworkInfomation.gateway dnsInput.text = App.currentNetworkInfomation.dns } } }