案例需求:多人聊天室

wxpython图形用户界面编程 wxPython 提供了两种下拉列表控件类:wx.ComboBox 和 wx.Choice,wx.ComboBox 默认它的文本框是可以修改的,wx.Choice 是只读不可以修改的,除此之外他们没有区别。创建指定行数和列数的wx.GridSizer对象,并指定水平和垂直间隙,参数hgap为水平间隙,参数vgap为垂直间隙,整数类型。列表控件类是 wx.ListBox。同wx.GridSizer(rows,cols,vgap,hgap),gap参数指定垂直间隙和水平间隙,gap参数是wx.Size类型。 阅读详情

案例需求描述 p189

在这里插入图片描述


在这里插入图片描述

图形界面的第三方库

使用wxPython绘制客户端界面 p190

在这里插入图片描述

代码示例:

import wx

class YsjClient(wx.Frame):
    def __init__(self,client_name):
        # 调用父类的初始化方法
        # None:没有父级窗口
        # id:当前窗口的一个编号
        # title:窗体的标题
        # pos:窗体的打开位置(设置为默认)
        # size:窗体的大小,单位是像素,400是宽度,450是高度
        wx.Frame.__init__(self,None,id=1001,title=client_name+'的客户端界面',pos=wx.DefaultPosition,size=(400,450))

        # 创建面板对象,然后往窗体里面放
        pl=wx.Panel(self)

        # 在面板中放上盒子
        box=wx.BoxSizer(wx.VERTICAL) # 垂直方向布局

        # 可伸缩的网格布局
        fgz1=wx.FlexGridSizer(wx.HSCROLL) # 水平方向布局

        # 创建两个按钮
        conn_btn=wx.Button(pl,size=(200,40),label='连接')
        dis_conn_btn=wx.Button(pl,size=(200,40),label='断开')

        # 把两个按钮放到可伸缩的网格布局
        fgz1.Add(conn_btn,1,wx.TOP|wx.LEFT)
        fgz1.Add(dis_conn_btn,1,wx.TOP|wx.RIGHT)

        # 把可伸缩的网格布局添加到box中
        box.Add(fgz1,1,wx.ALIGN_CENTRE) # 居中对齐

        # 只读文本框,用于显示聊天内容
        self.show_text=wx.TextCtrl(pl,size=(400,210),style=wx.TE_MULTILINE|wx.TE_READONLY) # 多行+只读

        # 把文本框放入box中
        box.Add(self.show_text,1,wx.ALIGN_CENTRE)

        # 创建聊天内容文本框
        self.chat_text = wx.TextCtrl(pl, size=(400, 120), style=wx.TE_MULTILINE | wx.TE_READONLY)  # 多行+只读
        box.Add(self.chat_text, 1, wx.ALIGN_CENTRE)

        # 再创建一个可伸缩的网格布局
        fgz2 = wx.FlexGridSizer(wx.HSCROLL)  # 水平方向布局
        # 再创建两个按钮
        reset_btn = wx.Button(pl, size=(200, 40), label='重置')
        send_btn = wx.Button(pl, size=(200, 40), label='发送')
        # 把这两个按钮放到可伸缩的网格布局中
        fgz2.Add(reset_btn, 1, wx.TOP | wx.LEFT)
        fgz2.Add(send_btn, 1, wx.TOP | wx.RIGHT)
        # 把可伸缩的网格布局添加到box中
        box.Add(fgz2, 1, wx.ALIGN_CENTRE)  # 居中对齐

        # 将盒子放到面板中
        pl.SetSizer(box)

if __name__ == '__main__':
    # 初始化app
    app=wx.App()
    client=YsjClient('Python娟子姐')
    client.Show() # 可以改成 YsjClient('Python娟子姐').Show()

    # 循环刷新显示
    app.MainLoop()

运行结果:
666

WxPython——开始学习WxPython 本文介绍了WxPython图形界面开发的基础知识。首先展示了一个最简单的WxPython框架,包含导入模块、创建应用类、初始化方法等基本结构。然后逐步扩展,介绍了如何规范地创建Frame类和Panel面板,并在其中添加StaticText控件显示"Hello World"。文章重点讲解了WxPython的核心概念:应用程序对象、框架对象、主事件循环的工作原理,以及如何通过继承wx.App和wx.Frame类来构建GUI应用。最后通过一个完整的Hello World示例,演示了WxPyth 阅读详情

相关推荐

多人聊天室(带私聊功能)Linux网络编程基础

Linux网络编程是我们这学期学习嵌入式的重要内容:不仅仅是期末作业,更是对linux网络编程的巩固。接下来我会将全部内容分享出来哈哈ψ(`∇´)ψ提示:完成得比较随意,不够严谨,仅供参考,大家都能做得更好!太好咯,又做完一个作业 哈哈哈O(∩_∩)O。

qq_59147881的博客 8230

wxPython入门中文版 (Getting Started with wxPython)

本文翻译自http://wiki.wxpython.org/Getting%20Started 首先声明:本人还是个菜鸟,翻译只是为了学习,就当作记笔记了。水平有限,错误和疏漏在所难免,希望各路高手能够给予指导。而且简单查了一下,好像中文世界目前还没有完整的翻译 Getting Started with wxPython 的。wxPython入门第一个应用程序:”Hello, World!”按惯例

然后呢 11万+

PyQt——Python最强大的客户端界面库

Qt是一个跨平台的应用程序框架,提供了许多用于创建高度可定制的GUI应用程序的工具和组件。Qt是一个跨平台的应用程序框架,提供了许多用于创建高度可定制的GUI应用程序的工具和组件。Qt是一个跨平台的应用程序框架,提供了许多用于创建高度可定制的GUI应用程序的工具和组件。Qt是一个跨平台的应用程序框架,提供了许多用于创建高度可定制的GUI应用程序的工具和组件。Qt是一个跨平台的应用程序框架,提供了许多用于创建高度可定制的GUI应用程序的工具和组件。

QasdCpp的博客 315

wxpython使用简介_wxPython 教程(一) 简介

应用(application)是用来执行特定任务或一组任务的电脑程序。网页浏览器、媒体播放器、文字处理程序都是典型的应用样例。不同应用可以划分至四种不同的应用领域:在线商店应用、wiki、微博等都是受欢迎的网页(web)应用,我们通过网页浏览器可以访问它们。桌面(Desktop)应用的例子则包括 Maya、Opera、Open Office或 Winamp。企业级(Enterprise)应用则指复...

weixin_39611506的博客 1万+

基于Python的多人聊天室的设计与实现

Python;web;chat room;Django目录1. 选题及其意义1.1 设计项目的名称1.2 研究意义2.文献资料综述3.设计理念3.1系统架构3.2 配置 MySQL 连接参数3.3 用户登录/注册3.3.1用户登录3.3.2用户注册3.4 主页设计3.5 修改密码3.6 聊天室实现4. 解决问题的方案4.1 解决问题的总体方案4.2方案可行性分析4.2.1 技术可行性5. 结论参考文献致 谢1. 选题及其意义1.1 设计项目的名称。

m0_56073435的博客 2500

【网络编程知识】使用Socket通信,做一个简单的多人聊天室

Socket 作为网络编程超级重要的一个知识点,对于程序员自然是一个必备的东西。 正好最近在看一些Socket套接字的内容,就想着能不能使用Socket做一个简单的通信功能,来加深对Socket的认知。 所以这篇文章就来使用Socket来简单制作一个多人聊天室,看看Socket到底怎样进行使用。

努力前行,总会成为自己心中的那道光 1万+

【Python】多人聊天室案例、生成器和迭代器

在 Python 中,生成器(Generators)和迭代器(Iterators)是用于逐个访问元素序列的工具。它们使得你可以编写高效且易于维护的代码来处理大量数据或无限流的数据,而无需一次性将所有数据加载到内存中。下面详细介绍这两种概念及其区别。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

基于Python web的多人聊天室

本文介绍了基于即时通讯的Python实现web版多人聊天室的设计和实现。这个系统利用了多种先进的技术,如Django、Channels、WebSocket,来实现即时通信,并利用MySQL和Redis作为数据库,同时还采用了多种前端技术,如bootstrap、CSS、html和js,来提供出色的用户体验。该系统实现了用户登录/注册、主页/大厅、修改密码、聊天室、在线好友列表等功能,能够满足用户在线聊天的需求。即时通讯;Python;web;聊天室;Django A multi-user cha

m0_56073435的博客 1777

Linux C多人网络聊天室

Linux C多人网络聊天室 程序完整,确保能用

qq_36863664的博客 8351

构建Linux平台的多人聊天室:从理论到实践

随着即时通讯需求的不断增长,多人聊天室作为一种实时在线沟通工具,广泛应用于企业、学校、社交等多个领域。它不仅能够满足群组间的沟通需求,还可以通过技术手段进行进一步的功能扩展和性能优化。在Linux环境下,网络通信是通过网络协议栈实现的,它负责处理数据包的封装、路由和传输。Socket编程是网络通信中最常见的应用层编程接口之一,它提供了一种方式来发送和接收数据流。在网络编程中,套接字(Socket)是一个抽象的概念,用于表示两台计算机之间的连接。

weixin_28922227的博客 1126

MIT Mini Cheetah--仿真流程

MIT Mini Cheetah–仿真 摘要 由于官方提供代码中,控制仿真环境中的猎豹机器人运动需要遥控器来控制。官方默认推荐使用logitech Gamepad F310游戏手柄:We use the Logitech F310 controller. There’s a switch in the back, which should be in the “X” position. The controller needs to reconnected if you change the switch

Galaxy_Robot的博客 5915

第十四章 项目案例《多人聊天室》

第十四章 项目案例《多人聊天室》 案例需求描述 多人聊天室比如微信群、QQ群等就属于多人聊天室项目。多人聊天室项目的特点就是可以拥有多个客户端,每个客户端都有自己的唯一的名称,而且当一个客户端发送数据到聊天室时,整个聊天室中所有成员都可以看到这条数据。 客户端可以有多个,但是服务器端只有一个。一个服务器要处理多个客户端之间的通信就需要使用到多线程。当一个客户端连接服务器成功后,服务器端就会开启一个线程与之通信。 这里使用第三方库wxPython来绘制聊天室界面。 wxPython: 是Python的第三方

记录学习过程中的笔记 1139

单片机多级菜单的简单实现

单片机多级菜单的简单实现 多级菜单的思路 最近想把stm32上的oled显示屏做的好看一些,于是动手写了写一个多级菜单,思路很简单,每个页面用单独的函数封装好,每个功能也是用单独的函数进行封装,用了3个按键,两个切换键,一个确定键。 首先来看看用啥判断页面的(这偷个懒,希望没人打我) //页面标志位 uint8_t s1 = 0; //主页面功能号 uint8_t s2 = 0; //主次页面判断标志位 uint16_t s3 = 1; //次页面功能号 主页面的显示函数,这是个很枯燥的一

qq_43940175的博客 7604

UDP多人聊天室

项目目标:实现一个简单的多人聊天室,利用UDP协议进行消息传输,允许多个用户同时连接和交流。技术实现:采用UDP协议作为通信协议,使用套接字编程实现客户端和服务器之间的连接和通信。通过并发处理实现多个客户端的并发处理。功能特点:实现了基本的聊天室功能,包括用户登录、消息发送和接收,以及用户退出。支持多个用户同时在线,消息广播给所有在线用户。数据结构:使用数据结构存储用户信息和消息缓冲区,使用链表存储用户的ip地址和对应的端口号。

嵌入式小企鹅的博客 904

Exchange 2013/2016/2019修改附件大小限制

Exchange 2013/2016/2019邮件大小限制 可以在三个位置上配置Exchange上的默认邮件大小限制: 组织传输设置 发送/接收连接器设置 用户邮箱设置 1.打开Exchange Management Shell 使用命令查看默认限制 get-transportconfig | ft maxsendsize, maxreceivesize get-receiveconnector | ft name, maxmessagesize get-sendconnector | ft

高级基础架构专家-Hunter 6094

FPGA远程升级必备:STARTUPE2原语控制Flash的避坑指南

本文深入解析了FPGA远程升级中STARTUPE2原语的核心价值与配置策略,详细介绍了其在QSPI Flash接口设计中的应用。通过Vivado工具和原语控制,开发者可以高效实现安全可靠的远程固件升级,提升系统稳定性和升级效率。

k8l9m0n的博客 394

聊聊(chatchat)基于SpringBoot的多人在线聊天室

本项目实现了一个多人在线聊天室,拥有以下功能。支持用户账号密码登录、注册。实时发起群聊或单独聊天。实时接收单独聊天消息与群聊消息。聊天记录存储于数据库,可查看历史消息,翻阅历史记录。消息接收提醒。本项目采用前后端分离架构。前端基于Vue3框架,使用Element-Plus组件库、Axios、vue-router、pinia等技术开发。

qq_39662124的博客 3758

【即插即用模块】注意力篇 | TGRS 2025 | ASD:自适应频域解耦,动态拆分高低频+空间注意力,频域空间特征双增强!

摘要: FDMF-Net提出了一种频域解耦多模态融合网络,核心组件为振幅谱解耦模块(ASD)。ASD通过自适应频域拆分和频域-空域协同增强,有效分离模态不变与模态特定特征。该模块利用MLP学习动态阈值调整高低频比例,并通过空间注意力分别强化频域特征,在遥感语义分割任务中实现了细节与结构的协同增强。实验表明,ASD模块能减少模态内冗余,提升特征判别性,为多模态数据融合提供了新思路。代码已开源,适用于需要强化细节与结构的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 304

基于python面向对象多人聊天室

基于python面向对象多人聊天室 1、项目环境 项目名称:多人聊天室 项目模式:C/S 开发环境:win10+python3.8+pycharm 所需知识:python GUI编程,多线程编程,网络编程,数据库编程 2、流程 3、程序设计 了解一下服务器扮演的角色,下面是服务器的业务流程。大致工作模式 服务器: 客户端: 首先服务器在指定的端口进行监听,等待客户的链接 客户端链接到服务器之后,服务器开启单线程来处理该用户的请求 处理线程等待客户端发送的请求 服务器根据客户端请求类型的不同,调用

jy02562179的博客 1550

英飞凌TC3xx之一起认识GTM系列(六)如何实现GTM与VADC关联的配置

本文给出了GTM与EVADC之间关联的细节,并通过两个实例分别说明了如何对寄存器进行配置。

无所适从的我的博客 2931

huggingface下载提示huggingface_hub.errors.EntryNotFoundError:404 Client Error: (Request 1D: Root...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1231

C++ 多人聊天室

UDP 服务端代码: // Test_Console.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <WinSock2.h> #include <WS2tcpip.h> #include <Windows.h> #include <thread...

LYSM 4693

2 中望CAD二次开发-绘制图形(ZRX C++)

本文讲解中望CAD二次开发,关于块的概念及基本图形的绘制

cilvsuanna的博客 410

多人网络聊天室实现

项目需求: 功能:类似qq群聊、linux环境下 1.进入聊天室需要输入姓名,姓名不能重复 2.有人进入聊天室会向其他人发送通知:xxx进入了聊天室 3.一个人发消息,其他人会收到消息 xxx 说: xxxxxx 4.某人退出聊天室,其他人也会收到通知 xxx退出了聊天室 5.管理员喊话 服务端发送消息给所有的客户端都收到 管理员说:xxxxxx 项目分析: 项目问题: * 服务端...

Pinkmanabcd的博客 1243

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Socket 多人聊天室的实现 (含前后端源码讲解)(一)

近期工作在小程序、网页中使用了WebSocket,浏览了各个公司对Android人才需求条件中有着要求使用过WebSoket、Socket的条件,便想着在Android上使用Socket来实现聊天室的功能。于是,这篇文章诞生了。 ...

宾有为的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

基于SpringBoot的websocket的多人聊天室项目

文章目录1、websocket什么是websocket?使用步骤1.引入依赖2.建立配置类3.业务层Web类HTML遇到的问题遇到的问题 1、websocket 什么是websocket? WebSocket协议是基于TCP的一种新的网络协议。它实现了客户端与服务器全双工通信,学过计算机网络都知道,既然是全双工,就说明了服务器可以主动发送信息给客户端。这与我们的推送技术或者是多人在线聊天的功能不谋而合。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yoWfMl8Z-1650

小赵的呢 3164
上一篇: 第十章2 三方模块 实战
下一篇: JJJ:kmem_cache_create、kmem_cache_destroy、kmem_cache_alloc、kmem_cache_free用法
你板子冒烟了
博客等级 码龄8年 1278粉丝 582原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值