【python基础】简要wxPython

news2024/11/10 16:13:52

文章目录

  • wxPython程序
    • 主事件循环通俗解释
    • 在窗口中添加控件


wxPython程序

import wx

app = wx.App()
frm = wx.Frame(None, title='第一个wxPython程序', size=(400, 300), pos=(100, 100))
frm.Show()
app.MainLoop()

app.MainLoop() 让应用程序进入主事件循环中。事件循环是一种事件或消息分发处理机制,大部分图形用户界面在界面中的显示及响应用户事件的处理都是通过主事件循环实现的。

主事件循环通俗解释

事件循环(Event Loop)是 GUI 应用程序的核心机制之一,它负责处理所有的用户输入、系统消息和事件,从而允许应用程序对用户的操作作出响应。

通俗解释
可以把事件循环想象成一个办公室文员,他坐在办公桌前,不断地处理各种任务(事件)。这些任务可能是打开邮件、接电话、文件归档或者处理客户请求。这个文员的工作方式如下:

不间断循环:文员从早上上班到晚上下班,一直在桌前等待新的任务到来。
处理任务:每当有新的任务到来,文员会暂停等待状态,处理这个任务。
完成任务:一旦任务完成,文员会继续回到等待状态,准备处理下一个任务。
在 GUI 应用程序中,事件循环类似于这个文员的行为:

等待事件:程序启动后,进入一个无限循环,等待用户的输入或系统的消息,比如鼠标点击、键盘输入、窗口关闭请求等。
处理事件:一旦有事件发生(比如用户点击了一个按钮),事件循环会根据预先定义的事件处理函数来处理这个事件。
返回等待状态:处理完当前事件后,事件循环会回到等待状态,继续等待下一个事件的发生。
例子说明
假设你有一个简单的 GUI 应用程序,它有一个按钮,当你点击它时,会显示一个消息框。事件循环的工作流程如下:

程序启动:应用程序启动并显示一个带按钮的窗口。
进入事件循环:应用程序进入事件循环,开始等待用户输入。
等待事件:事件循环在后台不断检查是否有新的事件(如鼠标点击、键盘输入等)。
用户点击按钮:用户点击了按钮,触发了一个点击事件。
处理点击事件:事件循环捕捉到这个点击事件,并调用相应的事件处理函数来显示一个消息框。
继续等待:消息框显示完毕后,事件处理函数结束,事件循环继续等待下一个事件。

在窗口中添加控件

import wx


class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(None, title="第一个wxPython程序", size=(400, 300))
        panel = wx.Panel(self)
        statictext = wx.StaticText(panel, label="点我", pos=(10, 10))


app = wx.App()
frm = MyFrame()
frm.Show()
app.MainLoop()

在这里插入图片描述
控件可以直接放到窗口中,在布局时会有很多问题。

控件的位置和大小都使用了绝对数值,这就是绝对布局。绝对布局有很多问题,在进行界面布局时尽量不要采用绝对布局。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2128284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计网简简单单复习一下

文章目录 基础体系结构(分层模型)为什么要分层?OSI 七层模型?每一层的作用?TCP/IP 四层模型是什么?每一层的作用是什么?五层体系结构以及对应的协议每一层常见协议有哪些?从输入 URL 到页面展示到底发生了什么?URI和URL的区别;forward和redirect的区别DNS作用是什么?D…

Find My外卖箱|苹果Find My技术与外卖箱结合,智能防丢,全球定位

外卖箱是外卖送餐时使用的具有保温广告功能的箱包,一般具有轻便易携,保温性好,耐用,安全,易固定在外送电动车上等特点。随着生活水平的提高和餐饮行业的飞跃,外卖作为餐饮行业一个新的利润增长点&#xff0…

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?idKS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的…

湖南岳阳农商行高管更迭背后:不良率居高,盈利压力不减

撰稿|芋圆 来源|贝多财经 2024年8月末,湖南岳阳农商行发布了2024年半年报,报告显示截至2024年6月末,湖南岳阳农商行资产规模累计231亿元,较2023年末增长1.34%;营业收入3.1亿元,同比增幅6.54%;…

上海亚商投顾:沪指续创阶段新低 两市成交不足5000亿元

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 大小指数昨日分化明显,沪指午后一度跌超1%,继续刷新阶段新低,创业板指则涨…

53 - I. 在排序数组中查找数字 I

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9853%20-%20I.%20%E5%9C%A8%E6%8E%92%E5%BA%8F%E6%95%B0%E7%BB%84%E4%B8%AD%E6%9F%A5%E6%89%BE%E6%95%B0%E5%AD%97%20I/README.md 面试题 53 - I. 在排序数组中查找数字 …

28BYJ-48步进电机详解(五线四相 STM32)

目录 一、介绍 二、模块原理 1.工作原理介绍 2.ULN2003驱动模块原理图 3.引脚描述 三、程序设计 main.c文件 stepmotor.h文件 stepmotor.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 步进电机(STEP MOTOR)把电脉冲信号变换成角位移…

socket编程详解

目录 1.认识socket编程 网络通信的本质 什么是socket编程? 如何进行socket编程? 2.基于UDP的socket编程 服务器端程序编写步骤 1.创建socket 2.将本地信息和网络信息进行绑定 3.接收数据 4.发送数据 客户端程序编写步骤 1.创建socket 2.发送…

再次进阶 舞台王者 第八季完美童模全球赛品牌大使【韩嘉滢】赛场秀场超燃合集!

7月20-23日,2024第八季完美童模全球总决赛在青岛圆满落幕。在盛大的颁奖典礼上,一位才能出众的少女——韩嘉滢,迎来了她舞台生涯的璀璨时刻。 品牌大使——韩嘉滢,以璀璨童星之姿,优雅地踏上完美童模盛宴的绚丽舞台&am…

第二百二十七节 JPA教程 - JPA日期列定义示例

JPA教程 - JPA日期列定义示例 时间类型是可以在持久状态映射中使用的基于时间的类型集合。 支持的时间类型的列表包括三个java.sql类型,java.sql.Date java.sql.Time和java.sql.Timestamp,以及两个java.util类型,java.util.Date和java.util.…

一家公司给1000个AI代理接入了《我的世界》——他们居然建造了一个社会

当世界上最伟大的沙盒游戏与几乎无限的AI力量结合时会发生什么?你会得到Project Sid,这是前麻省理工学院教授和神经科学家罗伯特杨博士构想出的一个精彩实验。 这位优秀的教授和他在专注于构建最先进自主代理的初创公司Altera.ai的团队决定看看他们是否…

Windows操作系统sid系统唯一标识符查看和修改

1、sid介绍 sid 作为windows系统唯一的标识,对某些集群业务有依赖关系,如果重复可能导致集群部署异常。 如:域控AD 就依赖 sid 功能。 但是某个云主机或虚拟机使用同一个ghost进行操作系统部署,就可能会导致重复的情况&#xf…

【二叉树的性质与存储结构】

1.特殊的二叉树 1.1满二叉树 特点: 每一层上的结点数都是最大结点数(即每层都满)叶子结点全部在最底层满二叉树在同样深度的二叉树中结点个数最多满二叉树在同样深度的二又树中叶子结点个数最多 编号原则: 每一结点位置都有元素从根结点开始&#xf…

探索SVG的奥秘:Python中的svgwrite库

文章目录 探索SVG的奥秘:Python中的svgwrite库背景:为何选择svgwrite?什么是svgwrite?如何安装svgwrite?五个简单的库函数使用方法场景应用:svgwrite在实际中的使用常见问题与解决方案总结 探索SVG的奥秘&a…

表面缺陷检测系统源码分享

表面缺陷检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Ubuntu 20.04 部署 NET8 Web - Systemd 的方式 达到外网访问的目的

1.Ubuntu服务器环境安装 1.1 增加微软包安装源 wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb1.2 Install the .NET SDK # 更新本地软件包列表。原理&am…

多输入多输出 | Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多输入多输出预测

多输入多输出 | Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多输…

webpack5-手撸RemoveConsolePlugin插件

写在前面 其实呢,这个东西也就那样,主要是我们得清楚webpack构建过程中的生命周期钩子, 就拿这个插件来说,我们想要把输出的js文件里面的内容中的console语句去掉,那么我们就需要找到webpack处理完文件时的钩子&#…

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我…

HTB-Vaccine(suid提权、sqlmap、john2zip)

前言 各位师傅大家好,我是qmx_07,今天来为大家讲解Vaccine靶机 渗透过程 信息搜集 服务器开放了 21FTP服务、22SSH服务、80HTTP服务 通过匿名登录FTP服务器 通过匿名登录到服务器,发现backup.zip文件,可能存在账号密码 发现b…