[疑惑与解答] WxPython In Action -1

在学《活学活用wxPython》第三章的时候,我遇到一点疑惑,那就是下面语句的区别是什么

例 3.1 第4,5行:

panel = wx.Panel(self, -1)
button = wx.Button(panel, -1, "Close", pos=(130, 15),   

例 3.3 第10,11行:

self.panel = wx.Panel(self)
self.button = wx.Button(self.panel, label="Not Over", pos=(100, 15)) 

第二个例子中为什么定义为self的方法?

所以就将3.3的部分代码修改为第一种风格

import wx

class MouseEventFrame(wx.Frame):
    """docstring for MouseEventFrame"""
    def __init__(self, parent, id):
        # You need define parent and id
        wx.Frame.__init__(self, parent, id, ‘Frame with Button‘,
            size = (300, 100))
        panel = wx.Panel(self)
        button = wx.Button(panel, label = ‘Not Over‘,
            pos = (100,15))
        self.Bind(wx.EVT_BUTTON, self.OnButtonClick, button)

    def OnButtonClick(self,event):
        panel.SetBackgroundColour(‘Green‘)
        panel.Refresh()

if __name__ ==‘__main__‘:
    app = wx.PySimpleApp()
    frame = MouseEventFrame(parent = None, id = -1)
    frame.Show()
    app.MainLoop()

运行无问题,可以正确地生成窗口,但是点击按钮后报错:global name ‘panel‘ is not defined。

我的理解如下:

panel 和 button 定义在 __init__() 方法中,无法传递到 OnButtonClick()中。但是self作为传递对象,一定会在方法中传递,所以要将 panel & button 定义 self 的一部分。

时间: 2024-10-11 21:18:58

[疑惑与解答] WxPython In Action -1的相关文章

孩子越吃越瘦可能是病了 宝宝囟门疑惑全解答

孩子越吃越瘦可能是病了 宝宝囟门疑惑全解答 http://baozoumanhua.com/users/11105487/followingshttp://baozoumanhua.com/users/11105492/followingshttp://baozoumanhua.com/users/11105498/followingshttp://baozoumanhua.com/users/11105504/followingshttp://baozoumanhua.com/users/11

关于 android 的 view.getLeft(), getRight(), getTop(), getBottom() 的一些疑惑(坑)解答

(原创) 今天在做下滑刷新的时候碰到 view 的四个 get 函数有点特别,具体遇到的问题如下,经反复测试和查找资料,填坑如下: 1,为什么我有时候在使用getLeft(), getRight(), getTop(), getBottom()它们得到的结果是0? 答: 出现这种情况可能是在刚启动程序,程序刚开始绘制 view 的时候,你马上使用代码去捕获上面的值.这个时候,由于view 是刚开始绘制的,你得到的就会是 0. 验证我上面的说法: new 一个线程,使用Thread.Sleep(l

CAN总线疑惑与解答

1    CAN总线2根数据线是怎么表示数据信息1和0的? Can总线采用差分数据表示方法,平时2个数据线为2.5V,表示隐性(1).当用数据0(显性)需要发送时1跟数据线上升到3.5V另一个下降到1.5V.如图a所示 所有节点都连接到这两根数据线,当所有节点都发送数据为隐性时总线数据才表示为隐性,如果有其中一个节点发送数据显性则总线数据表示为显性.数据仲裁也就是基于这样一个特点仲裁的. 2    CAN总线各个节点之间没有时钟线,如果各节点间时钟频率不一致或者即使时钟频率完全一致但相位偏移怎么

java学习中碰到的疑惑和解答(二)

没有写完,未完待续...... 路径问题是一个在平时学习和开发碰到的常见问题,对于初学者是一个比较值得研究的东西.因此对路径问题进行总结. 编写路径为了告诉编译器如何找到其他资源. 路径分类: 相对路径:从当前资源出发寻找其他资源的过程. 例如,在src目录下的mybatis.xml文件里配置resource使用的是相对路径,即从src目录下寻找com/bjsxt/mapper/PeopleMapper.xml 绝对路径: 从根目录(服务器根目录或项目根目录)出发找到其他资源的过程 例如, 原文

Mahout--(五)mahout疑问解答

来源:http://www.douban.com/note/245740667/ 提问1: 博涛前辈,您好! 打搅您了,我想请教您一些问题.我是一名在读研一学生.研究推荐系统方面的知识. 我一直非常困惑,在实际应用中,给定一个应用系统.比如淘宝,或者给定一个应用系统积累的数据集,怎样用推荐系统的思想着手分析,怎样为系统设计一个好的推荐方法,又是怎样一个流程去分析这类问题?我看了mahout in action书中recommendations章节chapter 5提到对于一个数据集的分析思路,先

教程和工具--用wxPython编写GUI程序的

wxPython是个很好的GUI库,对底层的C++库进行了封装,调用起来很方便,尤其是操作前台UI界面和后台多线程,两者配合很方便,做GUI程序最难是写界面尤其是布局. 关于wxPython,自己正在用的书<wxPython in action>,网上有中文翻译版,对各种控件.布局讲解很详细. 另外,今天在网上(http://blog.163.com/[email protected]/blog/static/78265448201141911555919/)发现一个工具--wxGlade,可

wxPython学习笔记(初识)

今天正式开始学习wxPython,基于对类的不熟悉,理解有点生硬,但还是做了些笔记. 1.是什么组成了一个wxpython程序? 一个wxpython程序必须有一个application(wx.App)对象和至少一个frame(wx.Frame)对象.而用于填充frame的则是一系列的wx.Window的子类,wx.Window的子类都可以拥有wx.Control的子类,在上图中,panel就是最常见的wx.Window的子类之一,而wx.StaticText和wx.TextCtrl则是最常见的

wxPython简单入门

wxPython简介 wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的.功能键全的  GUI 用户界面. wxPython 是作为优秀的跨平台 GUI 库 wxWidgets 的 Python 封装和 Python 模块的方式提供给用户的.就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够运行在32位windows.绝大多数的Unix或类Unix系统.Macintosh

wxpython-2

https://www.wxpython.org/docs/api/wx-module.html https://wxpython.org/Phoenix/docs/html/main.html http://docs.wxwidgets.org/stable/index.html 在线看吧,你可以看看wxpython in action这本电子书,内容是和wxpython自带的examples配套的 https://wxpython.org/Phoenix/docs/html/index.ht