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!

相关推荐
fox_lht8 分钟前
14.6.将错误重定向到标准错误
开发语言·后端·学习·rust
道友可好37 分钟前
AI 测试全绿,代码却是错的
前端·人工智能·后端
techdashen1 小时前
Rust 基础设施团队 2025 Q4 回顾与 2026 Q1 计划
开发语言·后端·rust
神奇小汤圆1 小时前
互联网大厂精选面试八股文(附2026最新Java+AI高频题)| 建议收藏
后端
春天花会开1311 小时前
影像上传前置机网络架构设计模板(含VPN)
后端·架构
程序员cxuan1 小时前
Fable 5 的系统提示词被人扒出来了,精彩,太精彩了。
人工智能·后端·程序员
神奇小汤圆1 小时前
颠覆认知:Java 打破双亲委派 ≠ 彻底废弃双亲委派模型
后端
ZengLiangYi2 小时前
5 种 AI 对话数据格式全解析
后端·aigc·ai编程
ZengLiangYi2 小时前
本地向量数据库选型:vectra vs chroma vs hnswlib
javascript·数据库·后端
咖啡八杯2 小时前
【无标题】
java·后端·设计模式