[Python] wxPython 状态栏组件、消息对话框组件 学习总结(原创)

2023-11-19

 1、状态栏组件

  1、基本介绍

      上图:

      

      红框框内的就是状态栏。

      他可以分成若干个区块,比如上者分为了两个区块,并且比例是固定的,创建时可以指定

      每个区块都能够显示 信息,一般通过 绑定事件 实时更新 各个区块的内容

      因为状态栏本身 组件,所以除了能够自己显示文本消息,还能够添加 其他组件,例如 进度条(常用)、按钮、编辑框、等。

      目前学习并用到是这些,还有未提及的希望能够在评论中告知,感谢。

  2、基本创建过程 (有两种)

      1、先创建一个 状态栏对象 然后添加到 窗口框架 中

        基本过程代码如下:

        

        首先创建一个 状态栏对象(id = -1 表示 id 由系统自动随机生成),然后设置了它的 :

        分区数 : 好像可以设置很多。必须大于 0 ,否则报错

        分块比例:参数是一个 元组, 分块数是几个,元组内元素就是几个。

             [-n, -m],负数表示时,表示区块为 n:m

             [n, m] , 整数表示时,区块大小是个定值,第0个区块长度为 n,第1个为 m,不会随着 窗口框体的变化而变化。

        分块内显示的内容:一般到实事件中进行 设置, 其中两个参数,第一个为 内容,第二个为 区块索引(从0开始)

        最后把它添加到了 窗口框体中

      2、从 窗口框体 中实例化一个 状态栏对象并进行操作

        

        通过 接受 窗口框体.CreateStatusBar() 方法返回的 状态栏 对象来 控制 状态栏

        控制设置 过程一致

  3、其他

      1、当不需要显示 状态栏 时 可以调用 状态栏对象的 .Show() 方法进行设置

        

        参数为 :

        True 时为 显示,

        False 时为 隐藏。

        一般比较少用到,但还是有必要知道的。

      2、添加一个 进度条 到状态栏组件中

        方法很简单:

        申明一个 父件为 此状态栏的进度条。

        然后根据 父件的相关大小参数,调整设置 自己的 相当位置与大小。

        一般 窗口绑定 窗口大小变化事件 从而实现实时 进度条与父件 大小相映衬。(以下代码没绑定事件)

 

 1 # coding: utf-8
 2 # author: Twobox
 3 
 4 import wx
 5 
 6 class MyWin(wx.Frame):
 7     def __init__(self, parent, title):
 8         super(MyWin, self).__init__(parent = parent, title = title)
 9         self.initUI()
10         self.Show()
11 
12     def initUI(self):
13         statusBar = self.CreateStatusBar(id = -1)
14         statusBar.SetFieldsCount(2)
15 
16         print(statusBar.GetSize())
17         gauge = wx.Gauge(statusBar, range = 100, pos = (2, 2), size = (statusBar.GetSize()[0]/2-13, 22), style=wx.GA_HORIZONTAL)
18         gauge.SetValue(50) # 设置当前进度 一般放到事件中 实时更新
19 
20 def main():
21     app = wx.App()
22     MyWin(None, "Windows - test")
23     app.MainLoop()
24 
25 if __name__ == '__main__':
26     main()

 

  4、状态栏组件 学习代码

 

 1 #coding:utf-8
 2 #author:Twobox
 3 
 4 import wx
 5 
 6 class Mywin(wx.Frame):
 7     """2种方法"""
 8     def __init__(self, parent, title):
 9         super(Mywin, self).__init__(parent = parent, title = title)
10         self.initUI_2()
11         self.Show()
12 
13     def initUI_1(self):
14         """通过创建一个StatusBar对象,再将再添加到当前窗口。"""
15         self.statusBar1 = wx.StatusBar(self, -1)                #实例化一个 状态栏 对象
16         self.statusBar1.SetFieldsCount(2)                       #设置 状态栏分块数
17         self.statusBar1.SetStatusWidths([-4,-1])                #设置 状态栏分块的比例
18         self.statusBar1.SetStatusText("  第 1 行 , 第 1 列", 1)  #设置 状态栏内的内容,索引从 0 开始
19         self.SetStatusBar(self.statusBar1)                      #将 状态栏对象 添加到 窗口框体中
20 
21     def initUI_2(self):
22         """StatusBar2当做是当前窗口创建出来的对象后直接使用。"""
23         self.statusBar2 = self.CreateStatusBar()                #通过当前窗口框体创建出来一个 状态栏 对象
24         self.statusBar2.SetFieldsCount(2)                       #与上相同
25         self.statusBar2.SetStatusWidths([-4,-1])
26         self.statusBar2.SetStatusText("  第 1 行 , 第 1 列",1)
27         self.statusBar2.Show(True)                             #可设置为隐藏(即不可见)
28 
29 def main():
30     app = wx.App()
31     Mywin(None, "StatusBar - Test")
32     app.MainLoop()
33 
34 if __name__ == '__main__':
35     main()

 

2、消息对话框组件

  1、基本介绍

      上图:

      

      这种信息框大家几乎天天都接触,比如关闭个软件 它会弹个框框问你是否真的关闭,或者安装完一个软件的时候询问你是否立即运行,等等等等。

      消息框的一般构成:

      标题:X 键左边的那个 “Hello World!”

      消息图标:上图是个感叹号

      消息内容:纯白色框框内的文字喽~

        可以是多行,O.O 如果让一万个换行符上去 应该也是可以的。

      若干个按钮:上图是一个,一共有四种:

        YES 、NO 、CANCEL 、OK 。

        单击后会返回以下相应的4条表示,所以可以用来判断按了哪个按钮。

        wx.ID_YES, wx.ID_NO, wx.ID_CANCEL, wx.ID_OK。

  2、一般使用过程

      以下 事件绑定在一个按钮上,单击后触发事件函数:

      

      首先创建一个 消息框对象:

        message:消息框的内容

        caotion:消息框的标题

        style:指定按钮类型 与 消息框图标样式 (style 可接受的参数列表 请向下看)

      一个判断语句:

        该判断语句 先执行 信息框 的 .ShowModal() 方法 (即弹出这个信息框)。

        当我们单机相关按钮后,该方法返回一个标识 。

      最后根据接受到的不同的表示完成 我们需要的不同的操作

  3、其他(style 可接受参数说明)

        

        其中 wx.ICON_*** 的为 信息框的图标样式。

        其他的为,信息框的按钮样式。

  4、信息框学习代码 (有点意思)

 

 1 # coding: utf-8
 2 # author: Twobox
 3 
 4 import wx
 5 
 6 class MyWin(wx.Frame):
 7     def __init__(self, parent, title):
 8         super(MyWin, self).__init__(parent=parent, title=title)
 9         self.initUI()
10 
11     def initUI(self):
12         panel = wx.Panel(self)
13         vbox = wx.BoxSizer(wx.VERTICAL)
14 
15         # 添加 两个 Button
16         self.bt1 = wx.Button(parent=panel, label=u"问好")
17         self.bt2 = wx.Button(parent=panel, label=u"关闭")
18         self.bt1.Bind(wx.EVT_BUTTON, self.eventButtonOne)
19         self.bt2.Bind(wx.EVT_BUTTON, self.eventButtonTwo)
20 
21         vbox.Add(self.bt1, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)
22         vbox.Add(self.bt2, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)
23 
24         panel.SetSizer(vbox)
25 
26         self.Center()
27         self.Show()
28 
29     def eventButtonOne(self, event):
30         msgDialog = wx.MessageDialog(parent=None, message = u"你今天过的好吗?(只能说好)", caption = u"Hello World!", style = wx.OK)
31         if msgDialog.ShowModal() == wx.ID_OK:
32             self.bt1.SetLabel(u"回答:今天很好")
33         else:
34             self.bt1.SetLabel(u"回答:今天不很好")
35 
36     def eventButtonTwo(self, event):
37         msgDialog = wx.MessageDialog(parent = None, message = u"确认关闭该窗口?", caption = u"Hello World!", style = wx.YES_NO|wx.ICON_AUTH_NEEDED)
38         if msgDialog.ShowModal() == wx.ID_YES:
39             self.Close()
40         self.bt2.SetLabel(u"选项:不关闭")
41 
42 def main():
43     app = wx.App()
44     MyWin(None, "MessageDialog - Test")
45     app.MainLoop()
46 
47 if __name__ == '__main__':
48     main()

 

3、感想

    O.O 好累 好累,如果再慢一点搞完 怕是中午饭都要错过了。。先强烈谴责一下 学校食堂饭菜一成不变。。舒畅多了。。

    这两种组件的运用 都不难,此文章的主要作用还是 归纳了一下的基本用法,方便以后再看看。

    O.O wxpython 在网上系统性的资料少了点,零零散散,找起来。。哎。。。

4、后言

  信息框参考的随笔:http://www.cnblogs.com/dyx1024/archive/2012/07/07/2580380.html

  转载请注明出处 (●'◡'●):http://www.cnblogs.com/Twobox/

  2017-08-23 12:35:23

转载于:https://www.cnblogs.com/Twobox/p/7417629.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Python] wxPython 状态栏组件、消息对话框组件 学习总结(原创) 的相关文章

  • 通过 add_subplot 添加子图后如何共享轴?

    我有一个像这样的数据框 df pd DataFrame A 0 3 0 2 0 5 0 2 B 0 1 0 0 0 3 0 1 C 0 2 0 5 0 0 0 7 D 0 6 0 3 0 4 0 6 index list abcd A B
  • 动态向类添加类方法

    我有以下片段 FEED TYPES fan mail Fan Mail review Review tip Tip fan user Fan User fan song Fan Song fan album Fan Album played
  • 将 JSON 发布到 Python CGI

    我已经安装了 Apache2 并且 Python 可以工作 但我有一个问题 我有两页 一个是 Python 页面 另一个是带有 JQuery 的 Html 页面 有人可以告诉我如何让我的 ajax 帖子正常工作吗
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • scipy.optimize on pandas dataframe

    我试图搜索它 但结果很差 有人可以向我解释一下如何在 Pandas DataFrame 上执行 optimize minimize 以便最小化 DataFrame 中的类别和结果列之间的错误 考虑这个例子 import pandas as
  • Python 转换矩阵

    我有一个如下所示的列表 2 1 3 1 2 3 1 2 2 2 我想要的是一个转换矩阵 它向我显示如下序列 1 后跟 1 的频率是多少 1 后面跟着 2 的频率是多少 1 后跟 3 的频率是多少 2 后跟 1 的频率是多少 2 后跟 2 的
  • Flask 中“缺少 CSRF 令牌”,但它在模板中呈现

    问题 当我尝试登录 使用 Flask login 时 我得到Bad Request The CSRF session token is missing但令牌正在呈现 在模板中 secret key 已设置 并且我在本地运行localhost
  • 将 Python Pandas DataFrame 写入 Word 文档

    我正在努力创建一个使用 Pandas DataFrames 的 Python 生成的报告 目前我正在使用DataFrame to string 方法 但是 这会作为字符串写入文件 有没有办法让我实现这一目标 同时将其保留为表格 以便我可以使
  • 如何在Windows中的Python 3.9下pip安装pickle?

    我需要pickle https docs python org 3 9 library pickle html module pickle包安装在我的下面Python 3 9在 Windows 10 下 我尝试过的 当尝试与pip inst
  • App Engine NDB:如何访问属性的 verbose_name

    假设我有这个代码 class A ndb Model prop ndb StringProperty verbose name Something m A m prop a string value 当然 现在如果我打印 m prop 它会
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • 通过 Python 循环浏览网络上的目录并显示其内容(文件和其他目录)

    同样的道理在Python中处理从源目录到目标目录的一组文件 https stackoverflow com questions 2593399 process a set of files from a source directory t
  • 为什么将模块级代码放入函数中然后调用该函数在Python中速度更快?

    在亚历克斯 马尔泰利的回应中使 Python 脚本面向对象 https stackoverflow com questions 1813117 making a python script object oriented 他提到在 Pyth
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 如何创建用于霍夫曼编码和解码的树?

    对于我的作业 我将对霍夫曼树进行编码和解码 我在创建树时遇到问题 并且陷入困境 不要介意打印语句 它们只是让我测试并查看函数运行时的输出是什么 对于第一个 for 循环 我从主块中用于测试的文本文件中获取了所有值和索引 在第二个 for 循
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 基于值的 matplotlib 条形图颜色

    有没有一种方法可以根据条形图的值对条形图的条形进行着色 例如 values below 0 5 red values between 0 5 to 0 green values between 0 to 08 blue etc 我找到了一些
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA

随机推荐

  • SQL server无法启动服务

    报错 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误 切换到 依赖关系 选项卡 我们可以看见它与 SQL Server MSSQLSERVER 服务存在依赖关系 4 鼠标右键单击 SQL Server MSSQLSER
  • springboot注册到consul中报错:Spring MVC found on classpath, which is incompatible with Spring Cloud

    今天在做springboot整合成springCloud并注册到consul中时 发现若注册到consule中成功 则不能启动swagger 且不能提供任何API服务 要是能提供API服务则不能注册到consule中 并报错 Spring
  • Python怎么打包exe可执行文件?教你30秒轻松完成

    兄弟们 我来了 实在是太忙了 没得时间更新 太难了 之前看很多人都在问 Python怎么打包exe可执行文件 雀氏有点多 那么我来了 给大家整一个Python打包exe可执行文件的究极教程 当然 顺便再给它换个图标 首先把你的代码准备好 尽
  • qt之QCustomPlot动态更改曲线颜色,点击曲线标题名称

    一 前言 上篇文章介绍了如何调用qt自带的颜色画板 其实目的就是想更改一些颜色 本篇博客介绍更改QCustomPlot的曲线颜色 二 环境 qt5 7 mingw windows8 sqlite3 三 正文 首先在数据库中建好表 一行多列
  • 碳排放混合预测模型(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 二氧化碳排放力争于
  • [自然语言处理入门]-NLP中的注意力机制

    本章的主要内容有 注意力机制概述 传统注意力机制 注意力编码机制 1 注意力机制概述 注意力机制简单来说就是 加权求和机制 模块 加权求和模块 神经网络中的一个组件 可以单独使用 但更多地用作为 网络中的一部分 2 传统注意力机制 2 1
  • windows基线检测

    按照Windows基线检查模板检查设置windows安全机制 windows基线检查选项及风险等级 编号 检查选项 风险等级 适用类型 1 系统已安装最新的service pack 2 系统已经安装了最新的安全补丁 本地安全策略检查选项及风
  • java控制台聊天程序

    java控制台聊天程序 发送端 package ip chat import java io BufferedReader import java io InputStreamReader import java net DatagramP
  • Python中的filter()函数

    目录 一 描述 语法 返回值 二 实例 1 过滤出列表中的所有奇数 2 过滤出1 100中平方根是整数的数 一 描述 英文文档 filter function iterable Construct an iterator from thos
  • 01-----tcpdump抓包命令

    一 tcpdump抓包命令 关于tcpdump的抓包命令 非常的多 这里我只记录我平时开发时比较常用的抓包命令 当然后面可能不断的在本篇补上对应的内容 1 tcpdump的命令格式 tcpdump adeflnNOpqStvx c 数量 F
  • 大数据毕业设计 深度学习图像检索算法研究与实现 - python

    文章目录 0 前言 1 课题简介 2 图像检索介绍 1 无监督图像检索 2 有监督图像检索 3 图像检索步骤 4 应用实例 5 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答
  • oh-my-zsh的各种主题展示,你喜欢哪一个?

    pygmalion virtualenv blink mrtazz sonicradish skaro linuxonly gnzh tjkirch 带时间
  • 物联网毕设分享 - stm32单片机酒精浓度酒驾检测系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 MQ 3酒精乙醇传感器模块 SIM800C模块 5 软件说明 系统框图 6 部分核心代码 7 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕
  • cityscapes和foggy_cityscapes数据集使用记录

    cityscapes和foggy cityscapes数据集使用记录 cityscapes 数据集介绍 下载数据集 cityscapes转voc格式 foggy cityscapes 下载数据集 foggy cityscapes转voc格式
  • linux drm 架构 基础

    一 简介 DRM 英文全称Digital Rights Management 可以翻译为 数字版权管理 由于数字化信息的特点决定了必须有另一种独特的技术 来加强保护这些数字化的音视频节目内容 文档 电子书籍的版权 该技术就是数字权限管理技术
  • PAT (Basic Level) Practice (中文) B1034 有理数四则运算 (20 分)(C++)(分数四则运算)

    1034 有理数四则运算 20 分 本题要求编写程序 计算 2 个有理数的和 差 积 商 输入格式 输入在一行中按照 a1 b1 a2 b2 的格式给出两个分数形式的有理数 其中分子和分母全是整型范围内的整数 负号只可能出现在分子前 分母不
  • openGL之API学习(一九三)glGenTextures

    生成纹理单元名 单元名不一定是连续的 但是没有使用的 单元名是相对GL TEXTURE0的 对于单元名1 其实是GL TEXTURE0 1 glGenTextures产生的是一个比较小的整数id 纹理单元名 glActiveTexture激
  • 三分钟带你搞懂分布式链路追踪系统原理

    分布式系统为什么需要链路追踪 随着互联网业务快速扩展 软件架构也日益变得复杂 为了适应海量用户高并发请求 系统中越来越多的组件开始走向分布式化 如单体架构拆分为微服务 服务内缓存变为分布式缓存 服务组件通信变为分布式消息 这些组件共同构成了
  • 前端学习——JavaScript原生实现购物车案例

    一 购物车案例 1 1 案例介绍 今天我们来写另外一个购物车案例 说实话对于我来说这个是花了将近三个小时的时间然后才做出来的 里面可能还存在一些我没有发现的问题 但是能完成基本的功能 对于一些基本的需求都是可以完成的 下面照旧是案例实现的g
  • [Python] wxPython 状态栏组件、消息对话框组件 学习总结(原创)

    1 状态栏组件 1 基本介绍 上图 红框框内的就是状态栏 他可以分成若干个区块 比如上者分为了两个区块 并且比例是固定的 创建时可以指定 每个区块都能够显示 信息 一般通过 绑定事件 实时更新 各个区块的内容 因为状态栏本身 组件 所以除了