wxpython设计GUI:同一个按钮控件响应多个事件

Python的GUI界面编程 其中,Tkinter是Python自带的GUI界面编程工具,使用简单,适合初学者入门。在本文中,我们将介绍Python的GUI界面编程,包括其基本概念、使用方法和实际应用。Python的GUI界面编程是一种非常实用的技能,可以应用于各种领域。本文介绍了Python的GUI界面编程的基本概念、使用方法和实际应用,希望对读者有所帮助。Python的GUI界面编程可以应用于各种领域,比如数据可视化、图像处理、游戏开发等。下面我们以数据可视化为例,介绍Python的GUI界面编程的实际应用。 阅读详情

同一个按钮控件需要对多个事件先后发生响应,需要在先发生的事件响应函数后面增加“event.Skip()”语句。

例如:按钮控件需要支持两种对事件的响应,先是点击按钮后按钮变颜色明示用户选中了该按钮,后是按钮点击后正常执行退出系统功能。
在这里插入图片描述

代码实现:

        # 退出系统
        self.m_button24.Bind(wx.EVT_BUTTON, self.quit)
        self.m_button24.Bind(wx.EVT_LEFT_DOWN, self.change_color_4)
    def quit(self, event):
        self.Destroy()
        sys.exit(0)
    def change_color_4(self, event):
        self.m_button24.SetBackgroundColour(wx.Colour("red"))
        event.Skip()

先改变按钮的颜色再执行退出系统的功能,以下按钮的触发事件设置都是不生效的:

第一种情况:都设置成wx.EVT_BUTTON

        # 退出系统
        self.m_button24.Bind(wx.EVT_BUTTON, self.quit)
        self.m_button24.Bind(wx.EVT_BUTTON, self.change_color_4)

第二种情况:都设置成wx.EVT_LEFT_DOWN

       # 退出系统
        self.m_button24.Bind(wx.EVT_LEFT_DOWN, self.quit)
        self.m_button24.Bind(wx.EVT_LEFT_DOWN, self.change_color_4)

第三种情况:改变颜色的触发事件设置成wx.EVT_BUTTON,退出系统的触发事件设置成wx.EVT_LEFT_DOWN

       # 退出系统
        self.m_button24.Bind(wx.EVT_LEFT_DOWN, self.quit)
        self.m_button24.Bind(wx.EVT_BUTTON, self.change_color_4)

原因如下:
在这里插入图片描述

在这里插入图片描述

从以上两个事件触发来看,EVT_BUTTON一定是晚于EVT_LEFT_DOWN响应的,所以要实现先改变按钮的颜色再执行退出系统的功能,应该将EVT_BUTTON赋予最后发生的事件。

python的GUI编程--wxpython学习(二)--基本控件和事件 其实wxpython的控件非常简单,在你声明好的panel或者frame里面直接实例化就行了,然后设置几个通用的参数,比如: parent=xxx label=’xxx’ style=’xxx’ 获取里面的值或者内容可以用GetValue()设置则是SetValue()。 为了省事,我把要学习的控件分为三个例子,如下图: 所以这里不一个个举例了,一个小技巧就是直接ctrl+鼠标左键进入源 阅读详情

相关推荐

Python之GUI编程

一、常用的GUI库 Tkinter:tkinter(Tk interface)是Python的标准GUI库,支持跨平台的GUI程序开发,tkinter适合小型的GUI程序编写,也特别适合初学者学习GUI编程。 wxPython:wxPython是比较流行的GUI库,适合大型应用程序开发,功能强宇tkinter,整体设计框架类似于MFC(Microsoft Foundation Classes 微软基础类库) PyQT:Qt是一种开源的GUI库,适合大型GUI程序开发,PyQT是Qt工具包标准的Pyt.

qq_60381063的博客 2万+

python一个按钮控制两个事件_PythonPyQt5教程(二)按钮的封装及响应、窗口事件的监听...

点击之后输出如下:click_Callback_one be calledclick_Callback_two be called其按我们的设置顺序进行了调用。有关signal&slot(信号槽)机制后面会单独出一篇,这里我们只需要知道connect之后,当clicked被触发时,就会回调给我们。OK,一个按钮我们就搞定了。但是,此时,我希望点击时,关掉我们的窗口,那该如何实现呢?其实很简...

weixin_29165725的博客 4339

Python实例讲解 -- wxpython 基本的控件 (文本)

使用基本的控件工作   wxPython 工具包提供了多种不同的窗口部件,包括了本章所提到的基本控件。我们涉及静态文本、可编辑的文本、按钮、微调、滑块、复选框、单选按钮、选择器、列表框、组合框和标尺。对于每种窗口部件,我们将提供一个关于如何使用它的简短例子,并附上相关的wxPython API 的说明。   显示文本   这一节以在屏幕上显示文本的例子作为开始,包括用作标签的...

Just Code 2354

wxPython学习(6.控件)

1.静态文本和按钮 wxPython中静态文本类是wx.StaticText,可以显示文本。wxPython中的按钮主要有三个:wx.Button、wx.BitmapButton和wx.ToggleButton。 wx.Button:是普通按钮 wx.BitmapButton:是带有图标按钮 wx.ToggleButton:能进行两种状态切换的按钮 StaticText构造函数的参数 pare...

qq_35634418的博客 1781

Python wxPython 【GUI库】简介

wxPython 是 Python 生态中构建专业级跨平台桌面应用的重要工具。尽管存在学习曲线,但其强大的控件库和原生体验使其成为开发桌面 GUI 的优选方案。对于追求界面美观和跨平台兼容性的项目,wxPython 值得深入探索。

记录点滴 913

wxPython实战教程:打造跨平台GUI应用

wxPython是一个开源的GUI工具包,为Python语言提供了丰富的用户界面组件。它起源于1998年,作为wxWidgets的Python封装,wxWidgets本身是一个成熟的C++跨平台GUI库。wxPython以其简洁、Pythonic的接口深受开发者喜爱,至今已广泛应用于多种平台和应用领域中。在许多应用中,wxPython提供的标准控件库可能无法完全满足用户界面的需求。这时就需要自定义控件来实现特定的功能。自定义控件可以是现有控件的组合,也可以是完全由开发者自己绘制。

weixin_34374684的博客 942

python多进程控制gui界面_python gui 多进程的疑问

from tkinter import *import concurrent.futuresdef p1():while True:print('1')def p2():while True:print('2')def login():login_window.after(1, p1)login_window.mainloop()def main():main_window.after(1, p2...

weixin_39628160的博客 517

Python GUI制作实例:wxPython多线程实战,含wxFormBuilder文件和源码

本文还有配套的精品资源,点击获取 简介:Python GUI制作中,wxPython库和wxFormBuilder工具是常用的组合。wxPython提供了丰富的组件和设计模式,而wxFormBuilder则可视化设计GUI布局。本实例展示了如何使用wxPython和多线程来防止GUI假死,并提供了wxFormBuilder设计的项目文件和Python源代码。通过学习这个实例...

weixin_28949937的博客 1772

python一个按钮控制两个事件_Python Turtle按键事件不重复

是有办法让它在Windows上工作,让拿着钥匙 下创建重复的事件?按键重复是操作系统功能,不同的系统处理它的方式不同。例如,默认情况下,我的Apple OS X系统上的按键会重复播放,但我可以进入系统偏好设置/键盘并更改速率,甚至关闭它(我试图测试以下代码。)如果您不喜欢“T有键重复,想模拟它,下面是一个使用龟定时器事件一键启动的关键重复下来,把它关掉关键了一个简单的例子:# import the...

weixin_39945816的博客 1230

Python GUI开发:从Tkinter到wxPython

本章介绍了Python中图形用户界面开发的几种库,重点讨论了Tkinter、PyQt和wxPython的使用。章节内容涵盖了wxPython的安装、基础程序编写、自定义窗口类、添加控件及事件处理机制。通过详细的示例代码,为读者展示了如何构建简单的GUI应用。

weixin_42581846的博客 476

SPAD 单光子雪崩二极管

SPAD,全称为,是一种高灵敏度的光电探测器件,能够在非常低的光照水平下检测单个光子。SPAD在工作时,当一个光子被探测器吸收后,能够触发一个雪崩效应,产生一个可以被检测到的电信号。

qq_42786033的博客 1万+

wxPython 实践(四)事件响应

wxPython 实践(一)概述wxPython 实践(二)基础控件wxPython 实践(三)页面布局wxPython 实践(四)事件响应wxPython 实践(五)高级控件。

cliffordl的专栏 1153

python3.12 在用django5.0创建超级用户时,遇到AttributeError: module ‘hashlib‘ has no attribute ‘pbkdf2_hmac‘的问题

产生问题的原因是python3.12的hashlib没有自带pbkdf2_hmac函数,该函数是加密算法的一种,只要通过别的函数导入pbkdf2_hmac即可。还有一种方法是将django默认使用的pbkdf2_hmac改为hashlib自带的sha2或其他算法返回加密的密码,笔者以后会尝试用此类办法解决问题。2.找到报错文件的位置/usr/local/lib/python3.12/site-packages/django/utils/crypto.py。保存修改的文件,重新执行创建超级用户的命令成功。

weixin_67057943的博客 852

常用的wxpython控件使用方法总结

总结下现阶段我常用到wxpython控件的一些使用方法,便于记录和查询。我一般是借助wxFormBuilder工具搭建基础的界面生成代码,这样做的好处自然是方便设计界面增加界面的美观度,再在.py文件手写代码设置控件的事件驱动,以此来完成GUI工具的开发。下图是我常用的wxFormBuilder基础组件及wxpython中控件的方法。

Logintern09的博客 3214

智能体在车联网中的应用:第31天 基于RLlib的多智能体PPO实战:MAPPO算法解决simple_spread合作任务

本文介绍了如何利用RLlib框架实现多智能体强化学习算法MAPPO,解决simple_spread任务。首先分析了RLlib的架构设计理念和多智能体支持特性,包括策略映射、环境包装等核心组件。然后详细解析了simple_spread环境的任务定义、观察空间和奖励函数设计。最后回顾了MAPPO算法原理,说明其如何在RLlib中实现集中式训练与分布式执行的CTDE范式。文章提供了完整的安装指南和环境配置方法,帮助读者快速搭建多智能体强化学习实验环境。

IT深耕十余载,大道之简 1332

智能客服系统知识库构建:长尾问题解决方案全解析

智能客服系统知识库构建:长尾问题解决方案全解析

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 4112

wxpython按钮事件处理_wxPython事件处理

与以顺序方式执行的控制台模式应用程序不同,基于GUI的应用程序是事件驱动的。响应于用户的操作(如单击按钮,从集合或鼠标点击中选择一个项目等)来执行函数或方法,称为事件。与在应用程序运行时发生的事件相关的数据被存储为从wx.Event派生的子类的对象。显示控件(如Button)是特定类型的事件源,并产生与其关联的Event类的对象。例如,点击一个按钮会发出一个wx.CommandEvent。该事件数...

weixin_32943857的博客 1362

薄膜比拟、开口截面扭转承载力以及风电混塔水平缝张开状态下抗扭承载力推导

风电混塔水平缝张开状态下的抗扭承载力推导,从弹性力学说起

George的博客 873

Python GUI: wxpython wxFormBuilder

https://github.com/wxFormBuilder/wxFormBuilder/releases

人不风流枉少年 2014

自动驾驶感知融合算法拆解:从华为MDC案例看前融合与大融合的工程实现

本文深度解析了华为MDC平台在自动驾驶感知融合算法中的前沿工程实践,重点探讨了Camera-Lidar前融合与多传感器大融合的架构设计。通过异构融合架构、数据流优化和场景化应用,华为MDC平台实现了高效、安全的感知能力,显著提升了自动驾驶系统的性能与可靠性。

weixin_29198045的博客 535

C/C++基础讲解(四十三)之图形篇之绘制直线、圆、圆弧、 椭圆

程序主要是基于Visual studio 2019进行编译完成了,有兴趣的小伙伴可以自己安装下Visual studio 2019,网上有现成的教程,当然了,如果有问题,也可以和我联系,这里我们主要讲解些源码实例,不多说了,言归正传。 C语言,做为学习其他语言的基础语言,其重要性就不言而喻了.下面我将和大家一起来学习探讨C语言的相关奥秘。 实例1:绘制直线 实例2:绘制圆 实例2:绘制圆弧 实例2:绘制椭圆

hnjzfwy的博客 1235

wxpython控件绑定事件_wxPython事件处理

与以顺序方式执行的控制台模式应用程序不同,基于GUI的应用程序是事件驱动的。函数或方法响应用户的操作来执行,例如单击按钮,从集合或鼠标单击等中选择一个项目,称为事件。有关在应用程序运行时发生的事件的数据存储为从 wx.Event派生的子类的对象。显示控件(如Button)是特定类型的事件源,并生成与其关联的Event类的对象。例如,点击一个按钮会发出一个wx.CommandEvent。该事件数据被...

weixin_39645343的博客 699

大聪明教你学Java | Seata 2.5 从下载到运行:全流程编译部署教程

Seata 2.5 版本带来了不少特性优化,但实际部署时却发现一个尴尬问题:全网找不到一篇完整覆盖「Git 源码下载→本地编译→环境配置→启动验证」的实操教程。作为一名踩遍无数坑才成功跑通的开发者,我深知这个过程的煎熬:Git 拉取源码后编译失败、依赖版本冲突、配置文件参数混乱、启动时端口占用或连接报错… 每一个坑都能耗费数小时排查。为了让后续开发者少走弯路,我将自己从0到1的完整实操经验整理成文,跟着步骤走即可成功运行 Seata 2.5.

不肯过江东丶 2072

wxpython界面开发工具_wxPython GUI构建工具wxFormBuilder

跨平台GUI库wxWidgets,这个库主要是用C++语言实现的;鉴于wxWidgets的流行,Robin Dunn用Python语言对wxWidgets做了一层封装,封装后便成了Python版GUI库wxPython;下面是这两个GUI库的官方主页:wxWidgets的各种UI控件功能均是通过class来实现的,这个链接 http://docs.wxwidgets.org/3.0/page_cl...

weixin_39856709的博客 546

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

怀旧版电脑GBC模拟器

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

python如何实现界面交互设计_python图形化界面设计(wxpython)三全面介绍

本篇内容来自https://www.cnblogs.com/ssyfj/p/8976178.html#wxpython的程序结构目录主要使用wxPython(最成熟的跨平台python GUI工具包)前戏:基础了解WxPython的程序结构窗口组成:事件驱动:常用组件(简单了解,后面还有):基本组件1.静态文本框2.文本输入框3.按钮控件4.单选框5.多选框6.列表控件7.使用sizer布局组件菜...

weixin_39583655的博客 3029

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python调用菜单响应事件_[Python] wxpython 编程触发菜单或按钮事件

最近逐步熟悉wxpython,编写了几个小小功能的GUI程序,GUI中免不了会有在代码中触发控件事件的业务需求。在其他Gui界面的语言中有postevent、triggerevent 调用事件名称的函数,非常方便。在wxpython里如何解决呢,上一段简单的代码。class frame(wx.Frame):ID_Help=wx.NewId()def__init__(self,frame):...

weixin_39928461的博客 698

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: wxpython设计GUI:窗口Frame最大化、最小化、关闭及全屏显示的说明
下一篇: python调用subprocess模块实现命令行操作控制SVN
草莓仙生
博客等级 码龄8年 2034粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草莓仙生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值