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!

相关推荐
小鸡脚来咯11 分钟前
RESTful API 面试详解
后端·面试·restful
吴巴格13 分钟前
springboot引用其他中间件,如何确定版本
spring boot·后端·中间件
IT_陈寒20 分钟前
Vue3性能优化实战:5个被低估的API让我减少了40%的代码量
前端·人工智能·后端
IT=>小脑虎27 分钟前
AI时代下后端的出路在哪?
人工智能·后端·学习
想摆烂的不会研究的研究生27 分钟前
每日八股——Redis(4)
数据库·经验分享·redis·后端·缓存
YYHPLA29 分钟前
【无标题】
java·spring boot·后端·缓存
EricLee37 分钟前
2025 年终总结 - Agent 元年
前端·人工智能·后端
q***441537 分钟前
C++跨平台开发挑战的技术文章大纲编译器与工具链差异
java·后端
JaguarJack40 分钟前
PHP 8.5 升级生存指南:避免凌晨两点回滚的检查清单
后端·php·服务端
BingoGo42 分钟前
PHP 8.5 升级生存指南:避免凌晨两点回滚的检查清单
后端·php