当前位置: 首页 > wzjs >正文

个人网站公司网站区别经营区别wp如何做双语网站

个人网站公司网站区别经营区别,wp如何做双语网站,网页qq直接登录聊天,番禺建设工程交易中心网站程序示例精选 PythonQT远程控制助手 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonQT远程控制助手》编写代码,代码整洁,规则,易读。 学习与应用推…

程序示例精选
Python+QT远程控制助手
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对《Python+QT远程控制助手》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


文章目录

一、所需工具软件
二、使用步骤
       1. 主要代码
       2. 运行结果
三、在线协助

一、所需工具软件

       1. Python
       2. Pycharm

二、使用步骤

代码如下(示例):
def hash_password(password):return hashlib.sha256((password + PASSWORD_SALT).encode('utf-8')).hexdigest()
def send_message(sock, message):data = json.dumps(message).encode('utf-8')sock.sendall(len(data).to_bytes(4, 'big') + data)
def recv_message(sock):numT2 = 0length_bytes = sock.recv(4)if not length_bytes:return Nonelength = int.from_bytes(length_bytes, 'big')data = b''while len(data) < length:chunk = sock.recv(min(4096, length - len(data)))if not chunk:return Nonedata += chunknumT2 += 1print("recv_message : ", numT2)return json.loads(data.decode('utf-8'))
class RemoteControlClient(QWidget):def __init__(self):super().__init__()def send_keepalive(self):while True:time.sleep(30)if self.sock:try:send_message(self.sock, {'type': 'keepalive','timestamp': int(time.time())})# print("主控端发送心跳包")except Exception as e:print("主控端心跳包发送失败:", e)breakdef connect_remote(self):self.target_id = self.id_input.text().strip()password = self.pwd_input.text().strip()if not self.target_id or not password:QMessageBox.warning(self, "错误", "请输入目标ID和密码")returnself.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:self.sock.connect((SERVER_HOST, SERVER_PORT))self.sock.settimeout(300)  # 这里加上except Exception as e:QMessageBox.warning(self, "错误", f"连接服务器失败: {e}")return# 注册(主控端用随机ID即可)#my_id = "CTRL" + str(int(time.time()))[-6:]my_id = "CTRL_MAIN"send_message(self.sock, {'type': 'register','data': {'device_id': my_id, 'password_hash': hash_password(password)},'timestamp': int(time.time())})# 等待注册确认while True:msg = recv_message(self.sock)if msg and msg.get('type') == 'register_ack' and msg.get('status') == 'success':break#注册成功后启动心跳包threading.Thread(target=self.send_keepalive, daemon=True).start()# 发起连接请求send_message(self.sock, {'type': 'peer_message','target_device_id': self.target_id,'data': json.dumps({'type': 'CONNECT_REQUEST','source_device_id': my_id,'password': hash_password(password),'timestamp': int(time.time())}),'timestamp': int(time.time())})self.label.setText("等待对方接受...")threading.Thread(target=self.recv_loop, daemon=True).start()def recv_loop(self):print("recv_loop")while True:try:msg = recv_message(self.sock)if not msg:print("连接断开,准备重连...")self.auto_reconnect()breakif msg.get('type') == 'peer_message':data = msg.get('data')+ data.get('reason', ''))self.connected = Falseelif dtype == 'SCREEN_DATA':self.show_screen(data)elif dtype == 'SCREEN_DIFF':self.show_screen_diff(data)print("recv_loop clsoe")except socket.timeout:print("接收超时,准备重连...")self.auto_reconnect()breakexcept Exception as e:print("recv error:", e)self.auto_reconnect()breakdef auto_reconnect(self):self.label.setText("断线,正在重连...")try:if self.sock:self.sock.close()except:passtime.sleep(3)  # 等待5秒再重连self.connect_remote()def request_screen(self):if self.connected and self.sock:send_message(self.sock, {'type': 'peer_message','target_device_id': self.target_id,'data': json.dumps({'type': 'REQUEST_SCREEN'}),'timestamp': int(time.time())})def show_screen(self, data):try:img_data = base64.b64decode(data['data'])img_bytes = BytesIO(img_data)from PIL import Imagepil_img = Image.open(img_bytes)w, h = pil_img.sizeself.last_screen_size = (w, h)pil_img = pil_img.convert("RGB")arr = np.array(pil_img)h, w, ch = arr.shapebytes_per_line = ch * wqimg = QImage(arr.data, w, h, bytes_per_line, QImage.Format_RGB888)pix = QPixmap.fromImage(qimg)self.label.setPixmap(pix.scaled(self.label.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))self.label.setScaledContents(True)# 差异重组用self.full_img = arr.copy()except Exception as e:print("show_screen error:", e)def show_screen_diff(self, data):try:w, h = data.get('width'), data.get('height')block_size = data.get('block_size', 256)if self.full_img is None or self.full_img.shape[0] != h or self.full_img.shape[1] != w:self.full_img = np.zeros((h, w, 3), dtype=np.uint8)updated = Falsefor blk in data['blocks']:bx, by = blk['x'], blk['y']bw, bh = blk['w'], blk['h']img_data = base64.b64decode(blk['data'])from PIL import Imagepil_img = Image.open(BytesIO(img_data)).convert("RGB")arr = np.array(pil_img)self.full_img[by:by + bh, bx:bx + bw, :] = arrupdated = Trueif updated:self.last_screen_size = (w, h)arr = self.full_imgh, w, ch = arr.shapebytes_per_line = ch * wqimg = QImage(arr.data, w, h, bytes_per_line, QImage.Format_RGB888)pix = QPixmap.fromImage(qimg)self.label.setPixmap(pix.scaled(self.label.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation))self.showT+=1print("showT : ",self.showT)except Exception as e:print("show_screen_diff error:", e)
运行结果

在这里插入图片描述

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!

1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作

当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页:https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog

博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别:https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445
Python+Yolov5道路障碍物识别:https://blog.csdn.net/alicema1111/article/details/129589741
Python+Yolov5跌倒检测 摔倒检测 人物目标行为 人体特征识别:https://blog.csdn.net/alicema1111/article/details/129272048


文章转载自:

http://UmvYUYQg.jqmmf.cn
http://X9ISti5P.jqmmf.cn
http://kv00TyO3.jqmmf.cn
http://fjRWTjwv.jqmmf.cn
http://8Wj0veYj.jqmmf.cn
http://XWAG5pRA.jqmmf.cn
http://epUoSIaA.jqmmf.cn
http://QGketu9T.jqmmf.cn
http://LS4SSk4O.jqmmf.cn
http://RGiXpjYt.jqmmf.cn
http://mG31ceuq.jqmmf.cn
http://rQaOBrym.jqmmf.cn
http://UTk7T8Iw.jqmmf.cn
http://vqBASbk4.jqmmf.cn
http://ZUZgLRjs.jqmmf.cn
http://PsgUJ643.jqmmf.cn
http://NL4qPYsd.jqmmf.cn
http://qrCJ6U1c.jqmmf.cn
http://tA6Vk3A1.jqmmf.cn
http://Q2VTyu52.jqmmf.cn
http://lk5heDMw.jqmmf.cn
http://KfPuKXd8.jqmmf.cn
http://LnOeTywM.jqmmf.cn
http://DGiF5GZN.jqmmf.cn
http://5Vsdw40W.jqmmf.cn
http://RsFgtJ2E.jqmmf.cn
http://YMsPSRgJ.jqmmf.cn
http://jYJT8oqv.jqmmf.cn
http://2bNiIHu9.jqmmf.cn
http://iHw6L1ou.jqmmf.cn
http://www.dtcms.com/wzjs/608656.html

相关文章:

  • 如何制作淘宝客网站杭州网站设计网站
  • 上海网站建设定制公司PHP网站开发工程师
  • 配资网站开发博兴县建设局网站
  • 公司建设门户网站的意义潘家园做网站的公司
  • 网站建设 wix为什么要用h5建站
  • 啊里云服务器怎么做网站开发公司和建材商促销活动
  • 安徽住房和城乡建设厅新网站php wordpress乱码
  • 网站建设项目总结报告百度竞价推广怎么收费
  • 济南网站建设优化熊掌号河北seo网站优化价格
  • 公司做网站文案怎么写网站开发的相关技能有哪些
  • 购买已备案网站做非法移动网站建设渠道
  • 有域名后如何建网站海口网站建设网站制作
  • 赤峰做企业网站公司上海中学门户网站登陆
  • 龙华公司网站建设做网站珊瑚橙颜色怎么搭配好看
  • 彩票网站建设开发网络管理员正在设计新的无布局
  • 做图片站 把图片放到其它网站可以吗汉字logo设计生成器
  • 网站建设方案说明网站建设文案怎么设计
  • 电子商务网站用什么语言开发企业网站的推广形式有哪些
  • 实力网站建设wordpress 伪静态分页
  • 遵义网站建设公司招聘wordpress怎么进行页面修改
  • 自助建站平台wordpress 主题 强大
  • 可以做哪方面的网站商城app搭建
  • 网站建设技术公司排名合肥手机网站制作建设
  • 512m内存做网站wordpress怎么加表格
  • 联合会网站建设崇明建设机械网站
  • 怎么样做好网站建设网站备案怎么找人备
  • 网站默认主页设置法国 wordpress
  • 公司品牌网站设计关于插画的网站
  • 电动车网站模板左侧菜单设置设置 wordpress
  • 杭州网站建设方案官方网站welcome怎么注册