使用websocket通信,创建窗口不同按钮点击事件实现websocket发送不同信号,但是点击后跳转不了并且窗口会卡死(猜想是线程问题)。
button.py
import sys
from PyQt5 import QtWidgets, QtCore
from Robot.Main import Ui_MainWindow
import websocket
import websocket3
ws = websocket.WebSocketApp("ws://192.168.1.2:9901")
class Test(QtWidgets.QMainWindow,Ui_MainWindow ):
def init(self, parent=None, *args, **kwargs):
super().init(parent, *args, **kwargs)
self.setupUi(self)
def move1(self):
websocket3.stop(ws)
def stop1(self):
websocket3.stop(ws)
def back1(self):
websocket3.back(ws)
if name == 'main':
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Test()
ui.show()
sys.exit(app.exec_())
websocket3.py
import websocket
import asyncio
import json
import buttontest
import sys
def move(ws):
msg = {"style": 1,
"goal": 1,
"status": 1
}
data = {"op": "request", "uid": "1", "service": "control", "args": msg}
ws.send(json.dumps(data))
def stop(ws):
msg = {"style": 1,
"goal": 3,
"status": 1
}
data = {"op": "request", "uid": "1", "service": "control", "args": msg}
ws.send(json.dumps(data))
def back(ws):
msg = {"style": 1,
"goal": 2,
"status": 1
}
data = {"op": "request", "uid": "1", "service": "control", "args": msg}
ws.send(json.dumps(data))
if name == "main":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://192.168.1.2:9901")
ws.run_forever(ping_timeout=5)
通过界面点击不同按钮调用websocket文件发送不同信号
ctrl