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!

相关推荐
奇逍科技圈10 分钟前
批发零售数字化转型新路径:中企销订货系统源码如何重构 BC 一体化增长引擎
后端·开源·零售
Victor35620 分钟前
MongoDB(109)如何使用Robo 3T?
后端
鹏程十八少20 分钟前
9. 2026金三银四 面试官问不垮:Java VS Android 设计模式 16 讲
前端·后端·面试
skilllite作者24 分钟前
从“记忆”到“项目 Wiki”:我在 SkillLite 里实现了一套 Markdown-only LLM Wiki 自动维护机制
开发语言·jvm·人工智能·后端·架构·rust
Victor35626 分钟前
MongoDB(110)什么是MongoDB Atlas?
后端
奇逍科技圈1 小时前
开源架构 + BC 一体化:批发零售企业订货系统源码重构增长新路径
后端·架构·开源
代码羊羊1 小时前
Rust Panic 深入全解:不可恢复错误的处理与原理
开发语言·后端·rust
会编程的土豆1 小时前
从 C/C++ 视角快速上手 Go 语言:核心差异与避坑指南
c语言·开发语言·c++·后端·golang
小码哥_常10 小时前
MyBatis-Plus:让数据库操作飞起来的神器
后端
2301_8112743110 小时前
基于SpringBoot的智能家居管理系统
spring boot·后端·智能家居