PyQt 基础学习 - 第四篇

网络编程

在这一篇中,我们将探讨如何使用 PyQt 进行网络编程。PyQt 提供了 QTcpSocket 和 QTcpServer 类,用于创建 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!

相关推荐
站大爷IP3 小时前
Python的字典遍历把我坑惨了,原来items和keys的区别这么大
后端
威哥爱编程3 小时前
【AI全栈12-01】Spring Boot 为何是 AI 全栈后端优选
java·spring boot·后端
汉堡大王95273 小时前
GPT-6 上线 48 小时,我扒开了 Intelligent UI 的运行机制:DIL、沙箱 Worker 和一个 React 式协调器
前端·javascript·后端
用户EasyAdminBlazor3 小时前
EasyAdminBlazor 实战:从 Entity 到完整 Admin Blazor 后台详解
后端
Bazingga3 小时前
AgentScope 到底是用来做什么的?一篇笔记说清楚
后端
威哥爱编程3 小时前
【AI全栈12-03】Spring Boot 用多模型路由把智能客服成本降下来
java·spring boot·后端
威哥爱编程3 小时前
【AI全栈12-02】Spring Boot 跑通第一个 AI 对话接口:HR 政策问答机器人实战
java·spring boot·后端
Bazingga3 小时前
Spring AI 还是 LangChain4j?我用同一套业务代码跑了一遍,答案出乎意料
后端
焦玉全3 小时前
动态代理学习笔记:JDK 与 CGLIB 的完整代码流程
后端
汝吾此便安好3 小时前
Axum 中间件执行顺序
后端