PyQt 基础学习 - 第四篇

网络编程

在这一篇中,我们将探讨如何使用 PyQt 进行网络编程。PyQt 提供了 QTcpSocketQTcpServer 类,用于创建 TCP 客户端和服务器。

创建 TCP 客户端

以下是一个简单的 TCP 客户端示例:

python 复制代码
from PyQt5.QtNetwork import QTcpSocket
from PyQt5.QtCore import QHostAddress

tcpSocket = QTcpSocket()
tcpSocket.connectToHost(QHostAddress.LocalHost, 1234)

if tcpSocket.waitForConnected(3000):
    print("Connected!")
    tcpSocket.write(b"Hello, Server!")

创建 TCP 服务器

以下是一个简单的 TCP 服务器示例:

python 复制代码
from PyQt5.QtNetwork import QTcpServer, QTcpSocket
from PyQt5.QtCore import QObject, pyqtSignal

class MyServer(QObject):
    newConnection = pyqtSignal(QTcpSocket)

    def __init__(self):
        super(MyServer, self).__init__()
        self.tcpServer = QTcpServer()
        self.tcpServer.listen(QHostAddress.LocalHost, 1234)
        self.tcpServer.newConnection.connect(self.addConnection)

    def addConnection(self):
        clientConnection = self.tcpServer.nextPendingConnection()
        self.newConnection.emit(clientConnection)

server = MyServer()

多线程

PyQt 支持多线程编程,这使得你可以创建更为响应式的应用。

使用 QThread

python 复制代码
from PyQt5.QtCore import QThread, pyqtSignal

class MyThread(QThread):
    mySignal = pyqtSignal(str)

    def run(self):
        self.mySignal.emit("Hello from thread!")

myThread = MyThread()

总结

在这篇文章中,我们探讨了如何使用 PyQt 进行网络编程和多线程编程。

下一篇文章将介绍如何使用 PyQt 进行图形和动画编程。


希望这篇文章能帮助你更深入地了解 PyQt!

相关推荐
对象存储与RustFS6 分钟前
用 rclone 把现有 S3/MinIO 数据同步到 RustFS
后端·rust·开源
魔兽大山哥18 分钟前
【NL2SQL 实战 05】sqlglot 这把刀:把 SQL 当结构处理,安全校验才不靠碰运气
后端
有来技术21 分钟前
youlai-boot 实战:MinIO 停止维护,Docker 迁移 RustFS 完整记录
java·后端·docker
Lyy22 分钟前
DevOps平台 — 第七篇:我的项目与表格组件抽取
后端·devops
唐青枫38 分钟前
别只会写 fn:Zig 函数、错误处理、泛型与回调实战
后端
Rain的Java大神之路41 分钟前
Docker搭建Redis集群完全指南
java·运维·redis·后端·docker·容器·架构
jj_ccwgw1 小时前
Kafka KRaft 多机集群安装指南
后端
小蒜学长1 小时前
基于Django的社区团购购物平台的设计与实现(代码+数据库+LW)
数据库·后端·python·django
灯澜忆梦1 小时前
【基于GO的Web开发9】gin框架返回json
前端·后端·golang·gin
kymjs张涛1 小时前
DeepSeek Harness源码分析:非 AI 开发者的 Agent 学习总结
前端·后端·面试