4 Star 0 Fork 1

计算机网络课程设计/pyqt5socket实现CS通信

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Cwindow.py 7.12 KB
一键复制 编辑 原始数据 按行查看 历史
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'clientwindow.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
from Cclient import Tcp, Udp
class Ui_MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super(Ui_MainWindow, self).__init__()
self.setupUi(self)
self.retranslateUi(self)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(749, 661)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.ipText = QtWidgets.QLineEdit(self.centralwidget)
self.ipText.setGeometry(QtCore.QRect(60, 20, 113, 26))
self.ipText.setObjectName("ipText")
self.portText = QtWidgets.QLineEdit(self.centralwidget)
self.portText.setGeometry(QtCore.QRect(250, 20, 113, 26))
self.portText.setObjectName("portText")
self.urlText = QtWidgets.QLineEdit(self.centralwidget)
self.urlText.setGeometry(QtCore.QRect(410, 20, 111, 26))
self.urlText.setObjectName("urlText")
self.protocol = QtWidgets.QPushButton(self.centralwidget)
self.protocol.setGeometry(QtCore.QRect(260, 60, 80, 26))
self.protocol.setObjectName("protocol")
self.ip = QtWidgets.QLabel(self.centralwidget)
self.ip.setGeometry(QtCore.QRect(20, 20, 54, 18))
self.ip.setObjectName("ip")
self.port = QtWidgets.QLabel(self.centralwidget)
self.port.setGeometry(QtCore.QRect(180, 20, 60, 18))
self.port.setObjectName("port")
self.url = QtWidgets.QLabel(self.centralwidget)
self.url.setGeometry(QtCore.QRect(380, 20, 54, 18))
self.url.setObjectName("url")
self.start = QtWidgets.QPushButton(self.centralwidget)
self.start.setGeometry(QtCore.QRect(420, 60, 80, 26))
self.start.setObjectName("start")
self.protocol.setCheckable(True)
self.protocol.clicked[bool].connect(self.protocolBtn)
self.start.clicked.connect(self.startclick)
self.proto = 1 # 设定1为tcp 0为udp
self.graphicsView = QtWidgets.QLabel(self.centralwidget)
self.graphicsView.setGeometry(QtCore.QRect(570, 0, 141, 121))
self.graphicsView.setObjectName("graphicsView")
self.temperature = QtWidgets.QLabel(self.centralwidget)
self.temperature.setGeometry(QtCore.QRect(595, 90, 90, 30))
self.temperature.setObjectName("temperature")
self.sunny = QtGui.QPixmap("client/sunny.jpg")
self.rainy = QtGui.QPixmap("client/rainy.jpg")
self.cloudy = QtGui.QPixmap("client/cloudy.jpg")
self.receivedataText = QtWidgets.QTextBrowser(self.centralwidget)
self.receivedataText.setGeometry(QtCore.QRect(50, 250, 651, 331))
self.receivedataText.setObjectName("receivedataText")
self.state = QtWidgets.QLabel(self.centralwidget)
self.state.setGeometry(QtCore.QRect(60, 60, 161, 20))
self.state.setObjectName("state")
self.senddataText = QtWidgets.QTextBrowser(self.centralwidget)
self.senddataText.setGeometry(QtCore.QRect(50, 150, 661, 41))
self.senddataText.setObjectName("senddataText")
self.senddata = QtWidgets.QLabel(self.centralwidget)
self.senddata.setGeometry(QtCore.QRect(60, 120, 81, 18))
self.senddata.setObjectName("senddata")
self.receivedata = QtWidgets.QLabel(self.centralwidget)
self.receivedata.setGeometry(QtCore.QRect(60, 220, 91, 18))
self.receivedata.setObjectName("receivedata")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 749, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "客户端"))
self.protocol.setText(_translate("MainWindow", "当前为tcp协议"))
self.ip.setText(_translate("MainWindow", "ip地址"))
self.port.setText(_translate("MainWindow", "服务器端口"))
self.url.setText(_translate("MainWindow", "url"))
self.start.setText(_translate("MainWindow", "点击开始"))
self.temperature.setText(_translate("MainWindow", ""))
self.state.setText(_translate("MainWindow", "not running"))
self.senddata.setText(_translate("MainWindow", "发送数据"))
self.receivedata.setText(_translate("MainWindow", "接收数据"))
def setState(self, s):
self.state.setText(s)
def setRec(self, s):
self.receivedataText.setText(s)
def setSend(self, s):
self.senddataText.setText(s)
def setWeather(self, weatherState, high, low):
if weatherState == '多云' or '阴':
self.graphicsView.setPixmap(self.cloudy)
elif weatherState == '晴':
self.graphicsView.setPixmap(self.sunny)
else:
self.graphicsView.setPixmap(self.rainy)
string = "高温:{}\n低温:{}".format(high, low)
self.temperature.setText(string)
def protocolBtn(self, press):
if press:
# udp
self.protocol.setText("当前为udp协议")
self.state.setText("当前为udp模式")
self.proto = 0
print("udp协议", self.proto)
pass
else: # tcp
self.protocol.setText("当前为tcp协议")
self.state.setText("当前为tcp模式")
self.proto = 1
print("tcp协议", self.proto)
def startclick(self):
if self.proto == 1: # tcp
ip = self.ipText.text()
port = int(self.portText.text())
url = self.urlText.text()
self.tcp = Tcp(ip, port, url)
self.tcp.state_signal.connect(self.setState)
self.tcp.recv_signal.connect(self.setRec)
self.tcp.send_signal.connect(self.setSend)
self.tcp.weather_signal.connect(self.setWeather)
print("tcp开始")
self.state.setText("客户端运行tcp协议")
try:
self.tcp.start()
except:
pass
else:
print("udp开始")
ip = self.ipText.text()
port = int(self.portText.text())
url = self.urlText.text()
self.udp = Udp(ip, port, url)
self.udp.state_signal.connect(self.setState)
self.udp.recv_signal.connect(self.setRec)
self.udp.send_signal.connect(self.setSend)
self.udp.weather_signal.connect(self.setWeather)
self.state.setText("客户端运行udp协议")
try:
self.udp.start()
except:
pass
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/computer_network_course_design/pyqt5_socket_CS.git
git@gitee.com:computer_network_course_design/pyqt5_socket_CS.git
computer_network_course_design
pyqt5_socket_CS
pyqt5socket实现CS通信
master

搜索帮助